home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1995-03-22 | 30.1 KB | [TEXT/MMCC] |
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary).
Confidence | Program | Detection | Match Type | Support
|
---|
66%
| dexvert
| Compact Compressed (Unix) (archive/compact)
| ext
| Supported |
1%
| dexvert
| MacBinary (archive/macBinary)
| fallback
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| MacBinary II, inited, Wed Mar 22 15:26:07 1995, modified Wed Mar 22 15:26:07 1995, creator 'MMCC', type ASCII, 30201 bytes "header.c" , at 0x7679 410 bytes resource
| default (weak)
| |
99%
| file
| data
| default
| |
74%
| TrID
| Macintosh plain text (MacBinary)
| default
| |
25%
| TrID
| MacBinary 2
| default (weak)
| |
100%
| dearkID
| deark: macbinary
| default
| |
100%
| siegfried
| fmt/1762 MacBinary (II)
| default
| |
100%
| lsar
| MacBinary
| default
|
|
id metadata |
---|
key | value |
---|
macFileType | [TEXT] |
macFileCreator | [MMCC] |
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 08 68 65 61 64 65 72 | 2e 63 00 00 00 00 00 00 |..header|.c......|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4d 4d 43 | 43 01 00 00 00 00 00 00 |.TEXTMMC|C.......|
|00000050| 00 00 00 00 00 75 f9 00 | 00 01 9a ab 96 38 5f ab |.....u..|.....8_.|
|00000060| 96 38 5f 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.8_.....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 20 c5 00 00 |........|.... ...|
|00000080| 2f 2a 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |/*------|--------|
|00000090| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000000a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000000b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000000c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 0d 0d |--------|------..|
|000000d0| 09 68 65 61 64 65 72 2e | 63 0d 09 0d 09 54 68 69 |.header.|c....Thi|
|000000e0| 73 20 6d 6f 64 75 6c 65 | 20 65 78 70 6f 72 74 73 |s module| exports|
|000000f0| 20 73 65 76 65 72 61 6c | 20 75 74 69 6c 69 74 79 | several| utility|
|00000100| 20 66 75 6e 63 74 69 6f | 6e 73 20 66 6f 72 20 77 | functio|ns for w|
|00000110| 6f 72 6b 69 6e 67 20 77 | 69 74 68 20 6e 65 77 73 |orking w|ith news|
|00000120| 0d 09 61 6e 64 20 6d 61 | 69 6c 20 68 65 61 64 65 |..and ma|il heade|
|00000130| 72 73 2e 0d 09 0d 09 43 | 6f 70 79 72 69 67 68 74 |rs.....C|opyright|
|00000140| 20 a9 20 31 39 39 34 2d | 31 39 39 35 2c 20 4e 6f | . 1994-|1995, No|
|00000150| 72 74 68 77 65 73 74 65 | 72 6e 20 55 6e 69 76 65 |rthweste|rn Unive|
|00000160| 72 73 69 74 79 2e 0d 0d | 2d 2d 2d 2d 2d 2d 2d 2d |rsity...|--------|
|00000170| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000180| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000190| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000001a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000001b0| 2d 2d 2d 2d 2a 2f 0d 0d | 23 69 6e 63 6c 75 64 65 |----*/..|#include|
|000001c0| 20 3c 73 74 72 69 6e 67 | 2e 68 3e 0d 23 69 6e 63 | <string|.h>.#inc|
|000001d0| 6c 75 64 65 20 3c 73 74 | 64 69 6f 2e 68 3e 0d 23 |lude <st|dio.h>.#|
|000001e0| 69 6e 63 6c 75 64 65 20 | 3c 63 74 79 70 65 2e 68 |include |<ctype.h|
|000001f0| 3e 0d 0d 23 69 6e 63 6c | 75 64 65 20 22 67 6c 6f |>..#incl|ude "glo|
|00000200| 62 2e 68 22 0d 23 69 6e | 63 6c 75 64 65 20 22 68 |b.h".#in|clude "h|
|00000210| 65 61 64 65 72 2e 68 22 | 0d 23 69 6e 63 6c 75 64 |eader.h"|.#includ|
|00000220| 65 20 22 6d 65 6e 75 73 | 2e 68 22 0d 23 69 6e 63 |e "menus|.h".#inc|
|00000230| 6c 75 64 65 20 22 6e 65 | 77 73 77 61 74 63 68 65 |lude "ne|wswatche|
|00000240| 72 2e 68 22 0d 23 69 6e | 63 6c 75 64 65 20 22 73 |r.h".#in|clude "s|
|00000250| 74 72 75 74 69 6c 2e 68 | 22 0d 23 69 6e 63 6c 75 |trutil.h|".#inclu|
|00000260| 64 65 20 22 6e 65 74 2e | 68 22 0d 23 69 6e 63 6c |de "net.|h".#incl|
|00000270| 75 64 65 20 22 6d 65 6d | 75 74 69 6c 2e 68 22 0d |ude "mem|util.h".|
|00000280| 23 69 6e 63 6c 75 64 65 | 20 22 69 63 2e 68 22 0d |#include| "ic.h".|
|00000290| 0d 0d 0d 74 79 70 65 64 | 65 66 20 65 6e 75 6d 20 |...typed|ef enum |
|000002a0| 45 4c 69 6e 65 42 72 65 | 61 6b 4d 61 70 70 69 6e |ELineBre|akMappin|
|000002b0| 67 20 7b 0d 09 6b 4d 61 | 70 54 6f 53 70 61 63 65 |g {..kMa|pToSpace|
|000002c0| 2c 09 09 09 09 09 2f 2a | 20 6d 61 70 20 6c 69 6e |,...../*| map lin|
|000002d0| 65 20 62 72 65 61 6b 73 | 20 74 6f 20 73 70 61 63 |e breaks| to spac|
|000002e0| 65 20 2a 2f 0d 09 6b 4d | 61 70 54 6f 43 6f 6d 6d |e */..kM|apToComm|
|000002f0| 61 2c 09 09 09 09 09 2f | 2a 20 6d 61 70 20 6c 69 |a,...../|* map li|
|00000300| 6e 65 20 62 72 65 61 6b | 73 20 74 6f 20 63 6f 6d |ne break|s to com|
|00000310| 6d 61 20 2a 2f 0d 09 6b | 4d 61 70 54 6f 43 52 2c |ma */..k|MapToCR,|
|00000320| 09 09 09 09 09 09 2f 2a | 20 6d 61 70 20 6c 69 6e |....../*| map lin|
|00000330| 65 20 62 72 65 61 6b 73 | 20 74 6f 20 43 52 20 2a |e breaks| to CR *|
|00000340| 2f 0d 09 6b 4e 6f 4d 61 | 70 43 52 09 09 09 09 09 |/..kNoMa|pCR.....|
|00000350| 09 2f 2a 20 6e 6f 20 6c | 69 6e 65 20 62 72 65 61 |./* no l|ine brea|
|00000360| 6b 20 6d 61 70 70 69 6e | 67 20 2a 2f 0d 7d 20 45 |k mappin|g */.} E|
|00000370| 4c 69 6e 65 42 72 65 61 | 6b 4d 61 70 70 69 6e 67 |LineBrea|kMapping|
|00000380| 3b 0d 0d 0d 0d 2f 2a 2d | 2d 2d 2d 2d 2d 2d 2d 2d |;..../*-|--------|
|00000390| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000003a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000003b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000003c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000003d0| 2d 2d 2d 0d 09 4c 6f 63 | 61 74 65 48 65 61 64 65 |---..Loc|ateHeade|
|000003e0| 72 4c 69 6e 65 0d 09 0d | 09 4c 6f 63 61 74 65 20 |rLine...|.Locate |
|000003f0| 61 20 68 65 61 64 65 72 | 20 6c 69 6e 65 2e 0d 09 |a header| line...|
|00000400| 0d 09 45 6e 74 72 79 3a | 09 74 65 78 74 20 3d 20 |..Entry:|.text = |
|00000410| 68 61 6e 64 6c 65 20 74 | 6f 20 68 65 61 64 65 72 |handle t|o header|
|00000420| 20 74 65 78 74 2e 0d 09 | 09 09 68 64 72 45 6e 64 | text...|..hdrEnd|
|00000430| 20 3d 20 6c 65 6e 67 74 | 68 20 6f 66 20 68 65 61 | = lengt|h of hea|
|00000440| 64 65 72 20 74 65 78 74 | 2e 0d 09 09 09 6b 65 79 |der text|.....key|
|00000450| 20 3d 20 43 2d 66 6f 72 | 6d 61 74 20 68 65 61 64 | = C-for|mat head|
|00000460| 65 72 20 74 6f 20 6c 6f | 63 61 74 65 2c 20 6e 6f |er to lo|cate, no|
|00000470| 74 20 69 6e 63 6c 75 64 | 69 6e 67 20 0d 09 09 09 |t includ|ing ....|
|00000480| 09 74 68 65 20 74 65 72 | 6d 69 6e 61 74 69 6e 67 |.the ter|minating|
|00000490| 20 22 3a 22 2e 0d 09 09 | 09 0d 09 45 78 69 74 3a | ":"....|...Exit:|
|000004a0| 09 66 75 6e 63 74 69 6f | 6e 20 72 65 73 75 6c 74 |.functio|n result|
|000004b0| 20 3d 20 74 72 75 65 20 | 69 66 20 68 65 61 64 65 | = true |if heade|
|000004c0| 72 20 66 6f 75 6e 64 2c | 20 65 6c 73 65 20 66 61 |r found,| else fa|
|000004d0| 6c 73 65 2e 0d 09 09 09 | 2a 73 74 61 72 74 20 3d |lse.....|*start =|
|000004e0| 20 6f 66 66 73 65 74 20 | 69 6e 20 74 65 78 74 20 | offset |in text |
|000004f0| 6f 66 20 73 74 61 72 74 | 20 6f 66 20 68 65 61 64 |of start| of head|
|00000500| 65 72 20 63 6f 6e 74 65 | 6e 74 73 2e 0d 09 09 09 |er conte|nts.....|
|00000510| 2a 6c 65 6e 20 3d 20 6c | 65 6e 67 74 68 20 6f 66 |*len = l|ength of|
|00000520| 20 68 65 61 64 65 72 20 | 63 6f 6e 74 65 6e 74 73 | header |contents|
|00000530| 2e 0d 09 09 09 0d 09 54 | 68 69 73 20 66 75 6e 63 |.......T|his func|
|00000540| 74 69 6f 6e 20 6f 6e 6c | 79 20 72 65 74 75 72 6e |tion onl|y return|
|00000550| 73 20 74 68 65 20 66 69 | 72 73 74 20 70 61 72 74 |s the fi|rst part|
|00000560| 20 6f 66 20 22 66 6f 6c | 64 65 64 22 20 68 65 61 | of "fol|ded" hea|
|00000570| 64 65 72 20 6c 69 6e 65 | 73 2e 0d 2d 2d 2d 2d 2d |der line|s..-----|
|00000580| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000590| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000005a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000005b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000005c0| 2d 2d 2d 2d 2d 2d 2d 2a | 2f 0d 0d 73 74 61 74 69 |-------*|/..stati|
|000005d0| 63 20 42 6f 6f 6c 65 61 | 6e 20 4c 6f 63 61 74 65 |c Boolea|n Locate|
|000005e0| 48 65 61 64 65 72 4c 69 | 6e 65 20 28 48 61 6e 64 |HeaderLi|ne (Hand|
|000005f0| 6c 65 20 74 65 78 74 2c | 20 6c 6f 6e 67 20 68 64 |le text,| long hd|
|00000600| 72 45 6e 64 2c 20 63 68 | 61 72 20 2a 6b 65 79 2c |rEnd, ch|ar *key,|
|00000610| 20 6c 6f 6e 67 20 2a 73 | 74 61 72 74 2c 20 6c 6f | long *s|tart, lo|
|00000620| 6e 67 20 2a 6c 65 6e 29 | 0d 7b 0d 09 6c 6f 6e 67 |ng *len)|.{..long|
|00000630| 20 6b 65 79 4c 65 6e 3b | 0d 09 63 68 61 72 20 2a | keyLen;|..char *|
|00000640| 70 2c 20 2a 70 45 6e 64 | 2c 20 2a 71 3b 0d 0d 09 |p, *pEnd|, *q;...|
|00000650| 6b 65 79 4c 65 6e 20 3d | 20 73 74 72 6c 65 6e 28 |keyLen =| strlen(|
|00000660| 6b 65 79 29 3b 0d 09 70 | 20 3d 20 2a 74 65 78 74 |key);..p| = *text|
|00000670| 3b 0d 09 70 45 6e 64 20 | 3d 20 2a 74 65 78 74 20 |;..pEnd |= *text |
|00000680| 2b 20 68 64 72 45 6e 64 | 3b 0d 09 77 68 69 6c 65 |+ hdrEnd|;..while|
|00000690| 20 28 70 20 3c 20 70 45 | 6e 64 29 20 7b 0d 09 09 | (p < pE|nd) {...|
|000006a0| 69 66 20 28 4d 79 53 74 | 72 4e 45 71 75 61 6c 28 |if (MySt|rNEqual(|
|000006b0| 70 2c 20 6b 65 79 2c 20 | 6b 65 79 4c 65 6e 29 29 |p, key, |keyLen))|
|000006c0| 20 7b 0d 09 09 09 70 20 | 2b 3d 20 6b 65 79 4c 65 | {....p |+= keyLe|
|000006d0| 6e 3b 0d 09 09 09 77 68 | 69 6c 65 20 28 70 20 3c |n;....wh|ile (p <|
|000006e0| 20 70 45 6e 64 20 26 26 | 20 69 73 4c 57 53 50 28 | pEnd &&| isLWSP(|
|000006f0| 2a 70 29 29 20 70 2b 2b | 3b 0d 09 09 09 69 66 20 |*p)) p++|;....if |
|00000700| 28 2a 70 20 3d 3d 20 27 | 3a 27 29 20 7b 0d 09 09 |(*p == '|:') {...|
|00000710| 09 09 70 2b 2b 3b 0d 09 | 09 09 09 77 68 69 6c 65 |..p++;..|...while|
|00000720| 20 28 70 20 3c 20 70 45 | 6e 64 20 26 26 20 69 73 | (p < pE|nd && is|
|00000730| 4c 57 53 50 28 2a 70 29 | 29 20 70 2b 2b 3b 0d 09 |LWSP(*p)|) p++;..|
|00000740| 09 09 09 71 20 3d 20 70 | 3b 0d 09 09 09 09 77 68 |...q = p|;.....wh|
|00000750| 69 6c 65 20 28 71 20 3c | 20 70 45 6e 64 20 26 26 |ile (q <| pEnd &&|
|00000760| 20 2a 71 20 21 3d 20 43 | 52 29 20 71 2b 2b 3b 0d | *q != C|R) q++;.|
|00000770| 09 09 09 09 71 2d 2d 3b | 0d 09 09 09 09 77 68 69 |....q--;|.....whi|
|00000780| 6c 65 20 28 71 20 3e 3d | 20 70 20 26 26 20 69 73 |le (q >=| p && is|
|00000790| 4c 57 53 50 28 2a 71 29 | 29 20 71 2d 2d 3b 0d 09 |LWSP(*q)|) q--;..|
|000007a0| 09 09 09 71 2b 2b 3b 0d | 09 09 09 09 2a 73 74 61 |...q++;.|....*sta|
|000007b0| 72 74 20 3d 20 70 20 2d | 20 2a 74 65 78 74 3b 0d |rt = p -| *text;.|
|000007c0| 09 09 09 09 2a 6c 65 6e | 20 3d 20 71 20 2d 20 70 |....*len| = q - p|
|000007d0| 3b 0d 09 09 09 09 72 65 | 74 75 72 6e 20 74 72 75 |;.....re|turn tru|
|000007e0| 65 3b 0d 09 09 09 7d 0d | 09 09 7d 0d 09 09 77 68 |e;....}.|..}...wh|
|000007f0| 69 6c 65 20 28 70 20 3c | 20 70 45 6e 64 20 26 26 |ile (p <| pEnd &&|
|00000800| 20 2a 70 20 21 3d 20 43 | 52 29 20 70 2b 2b 3b 0d | *p != C|R) p++;.|
|00000810| 09 09 70 2b 2b 3b 0d 09 | 7d 0d 09 72 65 74 75 72 |..p++;..|}..retur|
|00000820| 6e 20 66 61 6c 73 65 3b | 0d 7d 0d 0d 0d 0d 2f 2a |n false;|.}..../*|
|00000830| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000840| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000850| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000860| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000870| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 0d 09 4c 6f |--------|----..Lo|
|00000880| 63 61 74 65 41 72 74 69 | 63 6c 65 48 65 61 64 65 |cateArti|cleHeade|
|00000890| 72 4c 69 6e 65 0d 09 0d | 09 4c 6f 63 61 74 65 20 |rLine...|.Locate |
|000008a0| 61 20 6d 65 73 73 61 67 | 65 20 68 65 61 64 65 72 |a messag|e header|
|000008b0| 20 6c 69 6e 65 20 69 6e | 20 61 6e 20 61 72 74 69 | line in| an arti|
|000008c0| 63 6c 65 2e 0d 09 0d 09 | 45 6e 74 72 79 3a 09 74 |cle.....|Entry:.t|
|000008d0| 65 78 74 20 3d 20 68 61 | 6e 64 6c 65 20 74 6f 20 |ext = ha|ndle to |
|000008e0| 61 72 74 69 63 6c 65 20 | 74 65 78 74 2e 0d 09 09 |article |text....|
|000008f0| 09 6b 65 79 20 3d 20 43 | 2d 66 6f 72 6d 61 74 20 |.key = C|-format |
|00000900| 68 65 61 64 65 72 20 74 | 6f 20 6c 6f 63 61 74 65 |header t|o locate|
|00000910| 2c 20 6e 6f 74 20 69 6e | 63 6c 75 64 69 6e 67 20 |, not in|cluding |
|00000920| 0d 09 09 09 09 74 68 65 | 20 74 65 72 6d 69 6e 61 |.....the| termina|
|00000930| 74 69 6e 67 20 22 3a 22 | 2e 0d 09 09 09 0d 09 45 |ting ":"|.......E|
|00000940| 78 69 74 3a 09 66 75 6e | 63 74 69 6f 6e 20 72 65 |xit:.fun|ction re|
|00000950| 73 75 6c 74 20 3d 20 74 | 72 75 65 20 69 66 20 68 |sult = t|rue if h|
|00000960| 65 61 64 65 72 20 66 6f | 75 6e 64 2c 20 65 6c 73 |eader fo|und, els|
|00000970| 65 20 66 61 6c 73 65 2e | 0d 09 09 09 2a 73 74 61 |e false.|....*sta|
|00000980| 72 74 20 3d 20 6f 66 66 | 73 65 74 20 69 6e 20 74 |rt = off|set in t|
|00000990| 65 78 74 20 6f 66 20 73 | 74 61 72 74 20 6f 66 20 |ext of s|tart of |
|000009a0| 68 65 61 64 65 72 20 63 | 6f 6e 74 65 6e 74 73 2e |header c|ontents.|
|000009b0| 0d 09 09 09 2a 6c 65 6e | 20 3d 20 6c 65 6e 67 74 |....*len| = lengt|
|000009c0| 68 20 6f 66 20 68 65 61 | 64 65 72 20 63 6f 6e 74 |h of hea|der cont|
|000009d0| 65 6e 74 73 2e 0d 09 09 | 09 0d 09 54 68 69 73 20 |ents....|...This |
|000009e0| 66 75 6e 63 74 69 6f 6e | 20 6f 6e 6c 79 20 72 65 |function| only re|
|000009f0| 74 75 72 6e 73 20 74 68 | 65 20 66 69 72 73 74 20 |turns th|e first |
|00000a00| 70 61 72 74 20 6f 66 20 | 22 66 6f 6c 64 65 64 22 |part of |"folded"|
|00000a10| 20 68 65 61 64 65 72 20 | 6c 69 6e 65 73 2e 0d 09 | header |lines...|
|00000a20| 54 68 65 20 63 61 6c 6c | 65 72 20 73 68 6f 75 6c |The call|er shoul|
|00000a30| 64 20 63 61 6c 6c 20 4c | 6f 63 61 74 65 43 6f 6e |d call L|ocateCon|
|00000a40| 74 69 6e 75 61 74 69 6f | 6e 48 65 61 64 65 72 4c |tinuatio|nHeaderL|
|00000a50| 69 6e 65 20 62 65 6c 6f | 77 20 74 6f 20 6c 6f 63 |ine belo|w to loc|
|00000a60| 61 74 65 20 0d 09 74 68 | 65 20 63 6f 6e 74 69 6e |ate ..th|e contin|
|00000a70| 75 61 74 69 6f 6e 20 6c | 69 6e 65 73 2e 0d 2d 2d |uation l|ines..--|
|00000a80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000a90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000aa0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000ab0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000ac0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2a 2f 0d 0d 73 74 |--------|--*/..st|
|00000ad0| 61 74 69 63 20 42 6f 6f | 6c 65 61 6e 20 4c 6f 63 |atic Boo|lean Loc|
|00000ae0| 61 74 65 41 72 74 69 63 | 6c 65 48 65 61 64 65 72 |ateArtic|leHeader|
|00000af0| 4c 69 6e 65 20 28 48 61 | 6e 64 6c 65 20 74 65 78 |Line (Ha|ndle tex|
|00000b00| 74 2c 20 63 68 61 72 20 | 2a 6b 65 79 2c 20 6c 6f |t, char |*key, lo|
|00000b10| 6e 67 20 2a 73 74 61 72 | 74 2c 20 6c 6f 6e 67 20 |ng *star|t, long |
|00000b20| 2a 6c 65 6e 29 0d 7b 0d | 09 6c 6f 6e 67 20 68 64 |*len).{.|.long hd|
|00000b30| 72 45 6e 64 3b 0d 0d 09 | 68 64 72 45 6e 64 20 3d |rEnd;...|hdrEnd =|
|00000b40| 20 4d 75 6e 67 65 72 28 | 74 65 78 74 2c 20 30 2c | Munger(|text, 0,|
|00000b50| 20 43 52 43 52 2c 20 32 | 2c 20 6e 69 6c 2c 20 30 | CRCR, 2|, nil, 0|
|00000b60| 29 3b 0d 09 69 66 20 28 | 68 64 72 45 6e 64 20 3c |);..if (|hdrEnd <|
|00000b70| 20 30 29 20 68 64 72 45 | 6e 64 20 3d 20 4d 79 47 | 0) hdrE|nd = MyG|
|00000b80| 65 74 48 61 6e 64 6c 65 | 53 69 7a 65 28 74 65 78 |etHandle|Size(tex|
|00000b90| 74 29 3b 0d 09 72 65 74 | 75 72 6e 20 4c 6f 63 61 |t);..ret|urn Loca|
|00000ba0| 74 65 48 65 61 64 65 72 | 4c 69 6e 65 28 74 65 78 |teHeader|Line(tex|
|00000bb0| 74 2c 20 68 64 72 45 6e | 64 2c 20 6b 65 79 2c 20 |t, hdrEn|d, key, |
|00000bc0| 73 74 61 72 74 2c 20 6c | 65 6e 29 3b 0d 7d 0d 0d |start, l|en);.}..|
|00000bd0| 0d 0d 2f 2a 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |../*----|--------|
|00000be0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000bf0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000c00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000c10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000c20| 0d 09 4c 6f 63 61 74 65 | 43 6f 6e 74 69 6e 75 61 |..Locate|Continua|
|00000c30| 74 69 6f 6e 48 65 61 64 | 65 72 4c 69 6e 65 0d 09 |tionHead|erLine..|
|00000c40| 0d 09 4c 6f 63 61 74 65 | 20 61 20 63 6f 6e 74 69 |..Locate| a conti|
|00000c50| 6e 75 61 74 69 6f 6e 20 | 6d 65 73 73 61 67 65 20 |nuation |message |
|00000c60| 68 65 61 64 65 72 20 6c | 69 6e 65 20 69 6e 20 61 |header l|ine in a|
|00000c70| 6e 20 61 72 74 69 63 6c | 65 2e 0d 09 0d 09 45 6e |n articl|e.....En|
|00000c80| 74 72 79 3a 09 74 65 78 | 74 20 3d 20 68 61 6e 64 |try:.tex|t = hand|
|00000c90| 6c 65 20 74 6f 20 61 72 | 74 69 63 6c 65 20 74 65 |le to ar|ticle te|
|00000ca0| 78 74 2e 0d 09 09 09 2a | 73 74 61 72 74 20 3d 20 |xt.....*|start = |
|00000cb0| 6f 66 66 73 65 74 20 69 | 6e 20 74 65 78 74 20 6f |offset i|n text o|
|00000cc0| 66 20 66 69 72 73 74 20 | 63 68 61 72 61 63 74 65 |f first |characte|
|00000cd0| 72 20 66 6f 6c 6c 6f 77 | 69 6e 67 20 65 6e 64 20 |r follow|ing end |
|00000ce0| 6f 66 0d 09 09 09 09 70 | 72 65 76 69 6f 75 73 20 |of.....p|revious |
|00000cf0| 6c 69 6e 65 20 69 6e 20 | 22 66 6f 6c 64 65 64 22 |line in |"folded"|
|00000d00| 20 68 65 61 64 65 72 20 | 6c 69 6e 65 2e 0d 09 09 | header |line....|
|00000d10| 09 0d 09 45 78 69 74 3a | 09 66 75 6e 63 74 69 6f |...Exit:|.functio|
|00000d20| 6e 20 72 65 73 75 6c 74 | 20 3d 20 74 72 75 65 20 |n result| = true |
|00000d30| 69 66 20 63 6f 6e 74 69 | 6e 75 61 74 69 6f 6e 20 |if conti|nuation |
|00000d40| 68 65 61 64 65 72 20 6c | 69 6e 65 20 66 6f 75 6e |header l|ine foun|
|00000d50| 64 2c 20 65 6c 73 65 20 | 66 61 6c 73 65 2e 0d 09 |d, else |false...|
|00000d60| 09 09 2a 73 74 61 72 74 | 20 3d 20 6f 66 66 73 65 |..*start| = offse|
|00000d70| 74 20 69 6e 20 74 65 78 | 74 20 6f 66 20 73 74 61 |t in tex|t of sta|
|00000d80| 72 74 20 6f 66 20 63 6f | 6e 74 69 6e 75 61 74 69 |rt of co|ntinuati|
|00000d90| 6f 6e 20 68 65 61 64 65 | 72 20 6c 69 6e 65 2e 0d |on heade|r line..|
|00000da0| 09 09 09 2a 6c 65 6e 20 | 3d 20 6c 65 6e 67 74 68 |...*len |= length|
|00000db0| 20 6f 66 20 63 6f 6e 74 | 69 6e 75 61 74 69 6f 6e | of cont|inuation|
|00000dc0| 20 68 65 61 64 65 72 20 | 6c 69 6e 65 2e 0d 2d 2d | header |line..--|
|00000dd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000de0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000df0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000e00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000e10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2a 2f 0d 0d 73 74 |--------|--*/..st|
|00000e20| 61 74 69 63 20 42 6f 6f | 6c 65 61 6e 20 4c 6f 63 |atic Boo|lean Loc|
|00000e30| 61 74 65 43 6f 6e 74 69 | 6e 75 61 74 69 6f 6e 48 |ateConti|nuationH|
|00000e40| 65 61 64 65 72 4c 69 6e | 65 20 28 48 61 6e 64 6c |eaderLin|e (Handl|
|00000e50| 65 20 74 65 78 74 2c 20 | 6c 6f 6e 67 20 2a 73 74 |e text, |long *st|
|00000e60| 61 72 74 2c 20 6c 6f 6e | 67 20 2a 6c 65 6e 29 0d |art, lon|g *len).|
|00000e70| 7b 0d 09 63 68 61 72 20 | 2a 70 2c 20 2a 70 45 6e |{..char |*p, *pEn|
|00000e80| 64 2c 20 2a 71 3b 0d 09 | 0d 09 70 20 3d 20 2a 74 |d, *q;..|..p = *t|
|00000e90| 65 78 74 20 2b 20 2a 73 | 74 61 72 74 3b 0d 09 70 |ext + *s|tart;..p|
|00000ea0| 45 6e 64 20 3d 20 2a 74 | 65 78 74 20 2b 20 4d 79 |End = *t|ext + My|
|00000eb0| 47 65 74 48 61 6e 64 6c | 65 53 69 7a 65 28 74 65 |GetHandl|eSize(te|
|00000ec0| 78 74 29 3b 0d 09 77 68 | 69 6c 65 20 28 70 20 3c |xt);..wh|ile (p <|
|00000ed0| 20 70 45 6e 64 20 26 26 | 20 69 73 4c 57 53 50 28 | pEnd &&| isLWSP(|
|00000ee0| 2a 70 29 29 20 70 2b 2b | 3b 0d 09 69 66 20 28 70 |*p)) p++|;..if (p|
|00000ef0| 20 3e 3d 20 70 45 6e 64 | 20 7c 7c 20 2a 70 20 21 | >= pEnd| || *p !|
|00000f00| 3d 20 43 52 29 20 72 65 | 74 75 72 6e 20 66 61 6c |= CR) re|turn fal|
|00000f10| 73 65 3b 0d 09 70 2b 2b | 3b 0d 09 69 66 20 28 70 |se;..p++|;..if (p|
|00000f20| 20 3e 3d 20 70 45 6e 64 | 20 7c 7c 20 21 69 73 4c | >= pEnd| || !isL|
|00000f30| 57 53 50 28 2a 70 29 29 | 20 72 65 74 75 72 6e 20 |WSP(*p))| return |
|00000f40| 66 61 6c 73 65 3b 0d 09 | 77 68 69 6c 65 20 28 70 |false;..|while (p|
|00000f50| 20 3c 20 70 45 6e 64 20 | 26 26 20 69 73 4c 57 53 | < pEnd |&& isLWS|
|00000f60| 50 28 2a 70 29 29 20 70 | 2b 2b 3b 0d 09 71 20 3d |P(*p)) p|++;..q =|
|00000f70| 20 70 3b 0d 09 77 68 69 | 6c 65 20 28 71 20 3c 20 | p;..whi|le (q < |
|00000f80| 70 45 6e 64 20 26 26 20 | 2a 71 20 21 3d 20 43 52 |pEnd && |*q != CR|
|00000f90| 29 20 71 2b 2b 3b 0d 09 | 71 2d 2d 3b 0d 09 77 68 |) q++;..|q--;..wh|
|00000fa0| 69 6c 65 20 28 71 20 3e | 3d 20 70 20 26 26 20 69 |ile (q >|= p && i|
|00000fb0| 73 4c 57 53 50 28 2a 71 | 29 29 20 71 2d 2d 3b 0d |sLWSP(*q|)) q--;.|
|00000fc0| 09 71 2b 2b 3b 0d 09 2a | 73 74 61 72 74 20 3d 20 |.q++;..*|start = |
|00000fd0| 70 20 2d 20 2a 74 65 78 | 74 3b 0d 09 2a 6c 65 6e |p - *tex|t;..*len|
|00000fe0| 20 3d 20 71 20 2d 20 70 | 3b 0d 09 72 65 74 75 72 | = q - p|;..retur|
|00000ff0| 6e 20 74 72 75 65 3b 0d | 7d 0d 0d 0d 0d 0d 2f 2a |n true;.|}...../*|
|00001000| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001010| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001020| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001030| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001040| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 0d 09 4d 61 |--------|----..Ma|
|00001050| 6b 65 50 61 74 68 48 65 | 61 64 65 72 20 0d 09 0d |kePathHe|ader ...|
|00001060| 09 4d 61 6b 65 20 61 20 | 22 50 61 74 68 22 20 68 |.Make a |"Path" h|
|00001070| 65 61 64 65 72 20 6c 69 | 6e 65 2e 0d 09 09 09 0d |eader li|ne......|
|00001080| 09 45 78 69 74 3a 09 66 | 75 6e 63 74 69 6f 6e 20 |.Exit:.f|unction |
|00001090| 72 65 73 75 6c 74 20 3d | 20 65 72 72 6f 72 20 63 |result =| error c|
|000010a0| 6f 64 65 2e 0d 09 09 09 | 70 61 74 68 20 3d 20 43 |ode.....|path = C|
|000010b0| 2d 66 6f 72 6d 61 74 20 | 22 50 61 74 68 22 20 68 |-format |"Path" h|
|000010c0| 65 61 64 65 72 20 6c 69 | 6e 65 2e 0d 2d 2d 2d 2d |eader li|ne..----|
|000010d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000010e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000010f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001100| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001110| 2d 2d 2d 2d 2d 2d 2d 2d | 2a 2f 0d 0d 73 74 61 74 |--------|*/..stat|
|00001120| 69 63 20 4f 53 45 72 72 | 20 4d 61 6b 65 50 61 74 |ic OSErr| MakePat|
|00001130| 68 48 65 61 64 65 72 20 | 28 63 68 61 72 20 70 61 |hHeader |(char pa|
|00001140| 74 68 5b 32 36 31 5d 29 | 0d 7b 0d 09 4f 53 45 72 |th[261])|.{..OSEr|
|00001150| 72 20 65 72 72 20 3d 20 | 6e 6f 45 72 72 3b 0d 0d |r err = |noErr;..|
|00001160| 09 65 72 72 20 3d 20 4e | 65 74 47 65 74 4d 79 4e |.err = N|etGetMyN|
|00001170| 61 6d 65 28 70 61 74 68 | 29 3b 0d 09 69 66 20 28 |ame(path|);..if (|
|00001180| 65 72 72 20 3d 3d 20 6e | 6f 45 72 72 29 20 7b 0d |err == n|oErr) {.|
|00001190| 09 09 73 74 72 63 61 74 | 28 70 61 74 68 2c 20 22 |..strcat|(path, "|
|000011a0| 21 75 73 65 72 22 29 3b | 0d 09 7d 20 65 6c 73 65 |!user");|..} else|
|000011b0| 20 69 66 20 28 65 72 72 | 20 3d 3d 20 75 73 65 72 | if (err| == user|
|000011c0| 43 61 6e 63 65 6c 65 64 | 45 72 72 29 20 7b 0d 09 |Canceled|Err) {..|
|000011d0| 09 72 65 74 75 72 6e 20 | 65 72 72 3b 0d 09 7d 20 |.return |err;..} |
|000011e0| 65 6c 73 65 20 7b 0d 09 | 09 73 74 72 63 70 79 28 |else {..|.strcpy(|
|000011f0| 70 61 74 68 2c 20 22 4e | 65 77 73 57 61 74 63 68 |path, "N|ewsWatch|
|00001200| 65 72 21 75 73 65 72 22 | 29 3b 0d 09 7d 0d 09 72 |er!user"|);..}..r|
|00001210| 65 74 75 72 6e 20 6e 6f | 45 72 72 3b 0d 7d 0d 0d |eturn no|Err;.}..|
|00001220| 0d 0d 2f 2a 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |../*----|--------|
|00001230| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001240| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001250| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001260| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001270| 0d 09 4d 61 6b 65 44 61 | 74 65 48 65 61 64 65 72 |..MakeDa|teHeader|
|00001280| 20 0d 09 0d 09 4d 61 6b | 65 20 61 20 22 44 61 74 | ....Mak|e a "Dat|
|00001290| 65 22 20 68 65 61 64 65 | 72 20 6c 69 6e 65 2e 0d |e" heade|r line..|
|000012a0| 09 09 09 0d 09 45 78 69 | 74 3a 09 64 61 74 65 20 |.....Exi|t:.date |
|000012b0| 3d 20 43 2d 66 6f 72 6d | 61 74 20 22 44 61 74 65 |= C-form|at "Date|
|000012c0| 22 20 68 65 61 64 65 72 | 20 6c 69 6e 65 2e 20 45 |" header| line. E|
|000012d0| 6d 70 74 79 20 73 74 72 | 69 6e 67 20 69 66 20 63 |mpty str|ing if c|
|000012e0| 61 6e 27 74 20 67 65 74 | 20 0d 09 09 09 09 6d 61 |an't get| .....ma|
|000012f0| 63 68 69 6e 65 20 6c 6f | 63 61 74 69 6f 6e 2e 0d |chine lo|cation..|
|00001300| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001310| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001320| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001330| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001340| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2a 2f 0d 0d |--------|----*/..|
|00001350| 73 74 61 74 69 63 20 76 | 6f 69 64 20 4d 61 6b 65 |static v|oid Make|
|00001360| 44 61 74 65 48 65 61 64 | 65 72 20 28 43 53 74 72 |DateHead|er (CStr|
|00001370| 32 35 35 20 64 61 74 65 | 29 0d 7b 0d 09 73 74 61 |255 date|).{..sta|
|00001380| 74 69 63 20 63 68 61 72 | 20 2a 64 61 79 73 5b 5d |tic char| *days[]|
|00001390| 20 3d 20 7b 22 53 75 6e | 22 2c 20 22 4d 6f 6e 22 | = {"Sun|", "Mon"|
|000013a0| 2c 20 22 54 75 65 22 2c | 20 22 57 65 64 22 2c 20 |, "Tue",| "Wed", |
|000013b0| 22 54 68 75 22 2c 20 22 | 46 72 69 22 2c 20 22 53 |"Thu", "|Fri", "S|
|000013c0| 61 74 22 7d 3b 0d 09 73 | 74 61 74 69 63 20 63 68 |at"};..s|tatic ch|
|000013d0| 61 72 20 2a 6d 6f 6e 74 | 68 73 5b 5d 20 3d 20 7b |ar *mont|hs[] = {|
|000013e0| 22 4a 61 6e 22 2c 20 22 | 46 65 62 22 2c 20 22 4d |"Jan", "|Feb", "M|
|000013f0| 61 72 22 2c 20 22 41 70 | 72 22 2c 20 22 4d 61 79 |ar", "Ap|r", "May|
|00001400| 22 2c 20 22 4a 75 6e 22 | 2c 20 0d 09 09 09 09 09 |", "Jun"|, ......|
|00001410| 09 09 20 22 4a 75 6c 22 | 2c 20 22 41 75 67 22 2c |.. "Jul"|, "Aug",|
|00001420| 20 22 53 65 70 22 2c 20 | 22 4f 63 74 22 2c 20 22 | "Sep", |"Oct", "|
|00001430| 4e 6f 76 22 2c 20 22 44 | 65 63 22 7d 3b 0d 0d 09 |Nov", "D|ec"};...|
|00001440| 44 61 74 65 54 69 6d 65 | 52 65 63 20 64 74 52 65 |DateTime|Rec dtRe|
|00001450| 63 3b 0d 09 4d 61 63 68 | 69 6e 65 4c 6f 63 61 74 |c;..Mach|ineLocat|
|00001460| 69 6f 6e 20 6c 6f 63 3b | 0d 09 6c 6f 6e 67 20 67 |ion loc;|..long g|
|00001470| 6d 74 44 65 6c 74 61 3b | 0d 09 63 68 61 72 20 67 |mtDelta;|..char g|
|00001480| 6d 74 53 69 67 6e 3b 0d | 09 73 68 6f 72 74 20 67 |mtSign;.|.short g|
|00001490| 6d 74 48 6f 75 72 73 3b | 0d 09 73 68 6f 72 74 20 |mtHours;|..short |
|000014a0| 67 6d 74 4d 69 6e 75 74 | 65 73 3b 0d 09 0d 09 52 |gmtMinut|es;....R|
|000014b0| 65 61 64 4c 6f 63 61 74 | 69 6f 6e 28 26 6c 6f 63 |eadLocat|ion(&loc|
|000014c0| 29 3b 0d 09 2a 64 61 74 | 65 20 3d 20 30 3b 0d 09 |);..*dat|e = 0;..|
|000014d0| 69 66 20 28 6c 6f 63 2e | 6c 61 74 69 74 75 64 65 |if (loc.|latitude|
|000014e0| 20 3d 3d 20 30 20 26 26 | 20 6c 6f 63 2e 6c 6f 6e | == 0 &&| loc.lon|
|000014f0| 67 69 74 75 64 65 20 3d | 3d 20 30 20 26 26 20 6c |gitude =|= 0 && l|
|00001500| 6f 63 2e 75 2e 67 6d 74 | 44 65 6c 74 61 20 3d 3d |oc.u.gmt|Delta ==|
|00001510| 20 30 29 20 72 65 74 75 | 72 6e 3b 0d 09 67 6d 74 | 0) retu|rn;..gmt|
|00001520| 44 65 6c 74 61 20 3d 20 | 6c 6f 63 2e 75 2e 67 6d |Delta = |loc.u.gm|
|00001530| 74 44 65 6c 74 61 20 26 | 20 30 78 30 30 66 66 66 |tDelta &| 0x00fff|
|00001540| 66 66 66 3b 0d 09 69 66 | 20 28 28 67 6d 74 44 65 |fff;..if| ((gmtDe|
|00001550| 6c 74 61 20 3e 3e 20 32 | 33 29 20 26 20 31 29 20 |lta >> 2|3) & 1) |
|00001560| 67 6d 74 44 65 6c 74 61 | 20 7c 3d 20 30 78 66 66 |gmtDelta| |= 0xff|
|00001570| 30 30 30 30 30 30 3b 0d | 09 69 66 20 28 67 6d 74 |000000;.|.if (gmt|
|00001580| 44 65 6c 74 61 20 3c 20 | 30 29 20 7b 0d 09 09 67 |Delta < |0) {...g|
|00001590| 6d 74 53 69 67 6e 20 3d | 20 27 2d 27 3b 0d 09 09 |mtSign =| '-';...|
|000015a0| 67 6d 74 44 65 6c 74 61 | 20 3d 20 2d 67 6d 74 44 |gmtDelta| = -gmtD|
|000015b0| 65 6c 74 61 3b 0d 09 7d | 20 65 6c 73 65 20 7b 0d |elta;..}| else {.|
|000015c0| 09 09 67 6d 74 53 69 67 | 6e 20 3d 20 27 2b 27 3b |..gmtSig|n = '+';|
|000015d0| 0d 09 7d 0d 09 67 6d 74 | 48 6f 75 72 73 20 3d 20 |..}..gmt|Hours = |
|000015e0| 67 6d 74 44 65 6c 74 61 | 20 2f 20 33 36 30 30 3b |gmtDelta| / 3600;|
|000015f0| 0d 09 67 6d 74 4d 69 6e | 75 74 65 73 20 3d 20 28 |..gmtMin|utes = (|
|00001600| 67 6d 74 44 65 6c 74 61 | 20 25 20 33 36 30 30 29 |gmtDelta| % 3600)|
|00001610| 20 2f 20 36 30 3b 0d 09 | 47 65 74 54 69 6d 65 28 | / 60;..|GetTime(|
|00001620| 26 64 74 52 65 63 29 3b | 0d 09 73 70 72 69 6e 74 |&dtRec);|..sprint|
|00001630| 66 28 64 61 74 65 2c 20 | 22 25 73 2c 20 25 2e 32 |f(date, |"%s, %.2|
|00001640| 64 20 25 73 20 25 2e 34 | 64 20 25 2e 32 64 3a 25 |d %s %.4|d %.2d:%|
|00001650| 2e 32 64 3a 25 2e 32 64 | 20 25 63 25 2e 32 64 25 |.2d:%.2d| %c%.2d%|
|00001660| 2e 32 64 22 2c 0d 09 09 | 64 61 79 73 5b 64 74 52 |.2d",...|days[dtR|
|00001670| 65 63 2e 64 61 79 4f 66 | 57 65 65 6b 20 2d 20 31 |ec.dayOf|Week - 1|
|00001680| 5d 2c 0d 09 09 64 74 52 | 65 63 2e 64 61 79 2c 0d |],...dtR|ec.day,.|
|00001690| 09 09 6d 6f 6e 74 68 73 | 5b 64 74 52 65 63 2e 6d |..months|[dtRec.m|
|000016a0| 6f 6e 74 68 20 2d 20 31 | 5d 2c 0d 09 09 64 74 52 |onth - 1|],...dtR|
|000016b0| 65 63 2e 79 65 61 72 2c | 0d 09 09 64 74 52 65 63 |ec.year,|...dtRec|
|000016c0| 2e 68 6f 75 72 2c 0d 09 | 09 64 74 52 65 63 2e 6d |.hour,..|.dtRec.m|
|000016d0| 69 6e 75 74 65 2c 0d 09 | 09 64 74 52 65 63 2e 73 |inute,..|.dtRec.s|
|000016e0| 65 63 6f 6e 64 2c 0d 09 | 09 67 6d 74 53 69 67 6e |econd,..|.gmtSign|
|000016f0| 2c 0d 09 09 67 6d 74 48 | 6f 75 72 73 2c 0d 09 09 |,...gmtH|ours,...|
|00001700| 67 6d 74 4d 69 6e 75 74 | 65 73 0d 09 29 3b 0d 7d |gmtMinut|es..);.}|
|00001710| 0d 0d 0d 0d 2f 2a 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |..../*--|--------|
|00001720| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001730| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001740| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001750| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001760| 2d 2d 0d 09 4d 61 6b 65 | 46 72 6f 6d 48 65 61 64 |--..Make|FromHead|
|00001770| 65 72 20 0d 09 0d 09 4d | 61 6b 65 20 61 20 22 46 |er ....M|ake a "F|
|00001780| 72 6f 6d 22 20 68 65 61 | 64 65 72 20 6c 69 6e 65 |rom" hea|der line|
|00001790| 2e 0d 09 09 09 0d 09 45 | 78 69 74 3a 09 66 72 6f |.......E|xit:.fro|
|000017a0| 6d 20 3d 20 43 2d 66 6f | 72 6d 61 74 20 22 46 72 |m = C-fo|rmat "Fr|
|000017b0| 6f 6d 22 20 68 65 61 64 | 65 72 20 6c 69 6e 65 2e |om" head|er line.|
|000017c0| 0d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.-------|--------|
|000017d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000017e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000017f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001800| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2a 2f 0d |--------|-----*/.|
|00001810| 0d 76 6f 69 64 20 4d 61 | 6b 65 46 72 6f 6d 48 65 |.void Ma|keFromHe|
|00001820| 61 64 65 72 20 28 63 68 | 61 72 20 66 72 6f 6d 5b |ader (ch|ar from[|
|00001830| 35 31 34 5d 29 0d 7b 0d | 09 4d 79 49 43 52 65 61 |514]).{.|.MyICRea|
|00001840| 64 53 68 61 72 65 64 50 | 72 65 66 73 28 6b 49 43 |dSharedP|refs(kIC|
|00001850| 52 65 61 6c 4e 61 6d 65 | 29 3b 0d 09 4d 79 49 43 |RealName|);..MyIC|
|00001860| 52 65 61 64 53 68 61 72 | 65 64 50 72 65 66 73 28 |ReadShar|edPrefs(|
|00001870| 6b 49 43 45 6d 61 69 6c | 29 3b 0d 09 0d 09 69 66 |kICEmail|);....if|
|00001880| 20 28 2a 67 50 72 65 66 | 73 2e 66 75 6c 6c 4e 61 | (*gPref|s.fullNa|
|00001890| 6d 65 20 3d 3d 20 30 29 | 20 7b 0d 09 09 73 74 72 |me == 0)| {...str|
|000018a0| 63 70 79 28 66 72 6f 6d | 2c 20 67 50 72 65 66 73 |cpy(from|, gPrefs|
|000018b0| 2e 65 6d 61 69 6c 41 64 | 64 72 65 73 73 29 3b 0d |.emailAd|dress);.|
|000018c0| 09 7d 20 65 6c 73 65 20 | 7b 0d 09 09 73 70 72 69 |.} else |{...spri|
|000018d0| 6e 74 66 28 66 72 6f 6d | 2c 20 22 25 73 20 28 25 |ntf(from|, "%s (%|
|000018e0| 73 29 22 2c 20 67 50 72 | 65 66 73 2e 65 6d 61 69 |s)", gPr|efs.emai|
|000018f0| 6c 41 64 64 72 65 73 73 | 2c 20 67 50 72 65 66 73 |lAddress|, gPrefs|
|00001900| 2e 66 75 6c 6c 4e 61 6d | 65 29 3b 0d 09 7d 0d 7d |.fullNam|e);..}.}|
|00001910| 0d 0d 0d 0d 2f 2a 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |..../*--|--------|
|00001920| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001930| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001940| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001950| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001960| 2d 2d 0d 09 4d 61 6b 65 | 4d 73 67 49 64 48 65 61 |--..Make|MsgIdHea|
|00001970| 64 65 72 20 0d 09 0d 09 | 4d 61 6b 65 20 61 20 22 |der ....|Make a "|
|00001980| 4d 65 73 73 61 67 65 2d | 49 44 22 20 68 65 61 64 |Message-|ID" head|
|00001990| 65 72 20 6c 69 6e 65 2e | 0d 09 09 09 0d 09 45 78 |er line.|......Ex|
|000019a0| 69 74 3a 09 66 75 6e 63 | 74 69 6f 6e 20 72 65 73 |it:.func|tion res|
|000019b0| 75 6c 74 20 3d 20 65 72 | 72 6f 72 20 63 6f 64 65 |ult = er|ror code|
|000019c0| 2e 0d 09 09 09 69 64 20 | 3d 20 6d 65 73 73 61 67 |.....id |= messag|
|000019d0| 65 20 69 64 20 68 65 61 | 64 65 72 20 6c 69 6e 65 |e id hea|der line|
|000019e0| 2c 20 6f 72 20 65 6d 70 | 74 79 20 73 74 72 69 6e |, or emp|ty strin|
|000019f0| 67 20 69 66 20 65 72 72 | 6f 72 2e 0d 2d 2d 2d 2d |g if err|or..----|
|00001a00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001a10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001a20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001a30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001a40| 2d 2d 2d 2d 2d 2d 2d 2d | 2a 2f 0d 0d 73 74 61 74 |--------|*/..stat|
|00001a50| 69 63 20 4f 53 45 72 72 | 20 4d 61 6b 65 4d 73 67 |ic OSErr| MakeMsg|
|00001a60| 49 64 48 65 61 64 65 72 | 20 28 63 68 61 72 20 69 |IdHeader| (char i|
|00001a70| 64 5b 35 31 32 5d 29 0d | 7b 0d 09 73 74 61 74 69 |d[512]).|{..stati|
|00001a80| 63 20 44 61 74 65 54 69 | 6d 65 52 65 63 20 70 72 |c DateTi|meRec pr|
|00001a90| 65 76 44 74 52 65 63 20 | 3d 20 7b 30 2c 20 30 2c |evDtRec |= {0, 0,|
|00001aa0| 20 30 2c 20 30 2c 20 30 | 2c 20 30 2c 20 30 7d 3b | 0, 0, 0|, 0, 0};|
|00001ab0| 0d 09 73 74 61 74 69 63 | 20 73 68 6f 72 74 20 75 |..static| short u|
|00001ac0| 6e 69 71 75 65 57 69 74 | 68 69 6e 53 65 63 6f 6e |niqueWit|hinSecon|
|00001ad0| 64 20 3d 20 30 3b 0d 09 | 44 61 74 65 54 69 6d 65 |d = 0;..|DateTime|
|00001ae0| 52 65 63 09 64 74 52 65 | 63 3b 0d 09 43 53 74 72 |Rec.dtRe|c;..CStr|
|00001af0| 32 35 35 09 68 6f 73 74 | 4e 61 6d 65 3b 0d 09 4f |255.host|Name;..O|
|00001b00| 53 45 72 72 20 65 72 72 | 20 3d 20 6e 6f 45 72 72 |SErr err| = noErr|
|00001b10| 3b 0d 09 63 68 61 72 20 | 2a 70 3b 0d 09 73 68 6f |;..char |*p;..sho|
|00001b20| 72 74 20 6c 65 6e 3b 0d | 09 0d 09 4d 79 49 43 52 |rt len;.|...MyICR|
|00001b30| 65 61 64 53 68 61 72 65 | 64 50 72 65 66 73 28 6b |eadShare|dPrefs(k|
|00001b40| 49 43 45 6d 61 69 6c 29 | 3b 0d 0d 09 2a 69 64 20 |ICEmail)|;...*id |
|00001b50| 3d 20 30 3b 0d 09 69 66 | 20 28 2a 67 50 72 65 66 |= 0;..if| (*gPref|
|00001b60| 73 2e 65 6d 61 69 6c 41 | 64 64 72 65 73 73 20 3d |s.emailA|ddress =|
|00001b70| 3d 20 30 29 20 72 65 74 | 75 72 6e 20 6e 6f 45 72 |= 0) ret|urn noEr|
|00001b80| 72 3b 0d 09 65 72 72 20 | 3d 20 4e 65 74 47 65 74 |r;..err |= NetGet|
|00001b90| 4d 79 4e 61 6d 65 28 68 | 6f 73 74 4e 61 6d 65 29 |MyName(h|ostName)|
|00001ba0| 3b 0d 09 69 66 20 28 65 | 72 72 20 21 3d 20 6e 6f |;..if (e|rr != no|
|00001bb0| 45 72 72 29 20 7b 0d 09 | 09 69 66 20 28 65 72 72 |Err) {..|.if (err|
|00001bc0| 20 3d 3d 20 75 73 65 72 | 43 61 6e 63 65 6c 65 64 | == user|Canceled|
|00001bd0| 45 72 72 29 20 72 65 74 | 75 72 6e 20 65 72 72 3b |Err) ret|urn err;|
|00001be0| 0d 09 09 65 72 72 20 3d | 20 4e 65 74 47 65 74 4d |...err =| NetGetM|
|00001bf0| 79 41 64 64 72 53 74 72 | 28 68 6f 73 74 4e 61 6d |yAddrStr|(hostNam|
|00001c00| 65 29 3b 0d 09 09 69 66 | 20 28 65 72 72 20 21 3d |e);...if| (err !=|
|00001c10| 20 6e 6f 45 72 72 29 20 | 72 65 74 75 72 6e 20 65 | noErr) |return e|
|00001c20| 72 72 3b 0d 09 7d 0d 09 | 69 66 20 28 2a 68 6f 73 |rr;..}..|if (*hos|
|00001c30| 74 4e 61 6d 65 20 3d 3d | 20 30 29 09 72 65 74 75 |tName ==| 0).retu|
|00001c40| 72 6e 20 6e 6f 45 72 72 | 3b 0d 09 66 6f 72 20 28 |rn noErr|;..for (|
|00001c50| 70 20 3d 20 67 50 72 65 | 66 73 2e 65 6d 61 69 6c |p = gPre|fs.email|
|00001c60| 41 64 64 72 65 73 73 3b | 20 2a 70 20 21 3d 20 30 |Address;| *p != 0|
|00001c70| 20 26 26 20 2a 70 20 21 | 3d 20 27 40 27 20 26 26 | && *p !|= '@' &&|
|00001c80| 20 2a 70 20 21 3d 20 27 | 25 27 20 26 26 0d 09 09 | *p != '|%' &&...|
|00001c90| 2a 70 20 21 3d 20 27 20 | 27 20 26 26 20 2a 70 20 |*p != ' |' && *p |
|00001ca0| 21 3d 20 27 3c 27 20 26 | 26 20 2a 70 20 21 3d 20 |!= '<' &|& *p != |
|00001cb0| 27 3e 27 20 26 26 20 2a | 70 20 21 3d 20 27 2c 27 |'>' && *|p != ','|
|00001cc0| 3b 20 70 2b 2b 29 20 2f | 2a 20 64 6f 20 6e 6f 74 |; p++) /|* do not|
|00001cd0| 68 69 6e 67 20 2a 2f 3b | 0d 09 6c 65 6e 20 3d 20 |hing */;|..len = |
|00001ce0| 70 20 2d 20 67 50 72 65 | 66 73 2e 65 6d 61 69 6c |p - gPre|fs.email|
|00001cf0| 41 64 64 72 65 73 73 3b | 0d 09 47 65 74 54 69 6d |Address;|..GetTim|
|00001d00| 65 28 26 64 74 52 65 63 | 29 3b 0d 09 69 66 20 28 |e(&dtRec|);..if (|
|00001d10| 70 72 65 76 44 74 52 65 | 63 2e 64 61 79 20 3d 3d |prevDtRe|c.day ==|
|00001d20| 20 64 74 52 65 63 2e 64 | 61 79 20 26 26 20 70 72 | dtRec.d|ay && pr|
|00001d30| 65 76 44 74 52 65 63 2e | 6d 6f 6e 74 68 20 3d 3d |evDtRec.|month ==|
|00001d40| 20 64 74 52 65 63 2e 6d | 6f 6e 74 68 20 26 26 0d | dtRec.m|onth &&.|
|00001d50| 09 09 70 72 65 76 44 74 | 52 65 63 2e 79 65 61 72 |..prevDt|Rec.year|
|00001d60| 20 3d 3d 20 64 74 52 65 | 63 2e 79 65 61 72 20 26 | == dtRe|c.year &|
|00001d70| 26 20 70 72 65 76 44 74 | 52 65 63 2e 68 6f 75 72 |& prevDt|Rec.hour|
|00001d80| 20 3d 3d 20 64 74 52 65 | 63 2e 68 6f 75 72 20 26 | == dtRe|c.hour &|
|00001d90| 26 0d 09 09 70 72 65 76 | 44 74 52 65 63 2e 6d 69 |&...prev|DtRec.mi|
|00001da0| 6e 75 74 65 20 3d 3d 20 | 64 74 52 65 63 2e 6d 69 |nute == |dtRec.mi|
|00001db0| 6e 75 74 65 20 26 26 20 | 70 72 65 76 44 74 52 65 |nute && |prevDtRe|
|00001dc0| 63 2e 73 65 63 6f 6e 64 | 20 3d 3d 20 64 74 52 65 |c.second| == dtRe|
|00001dd0| 63 2e 73 65 63 6f 6e 64 | 29 0d 09 7b 0d 09 09 75 |c.second|)..{...u|
|00001de0| 6e 69 71 75 65 57 69 74 | 68 69 6e 53 65 63 6f 6e |niqueWit|hinSecon|
|00001df0| 64 2b 2b 3b 0d 09 7d 20 | 65 6c 73 65 20 7b 0d 09 |d++;..} |else {..|
|00001e00| 09 70 72 65 76 44 74 52 | 65 63 20 3d 20 64 74 52 |.prevDtR|ec = dtR|
|00001e10| 65 63 3b 0d 09 09 75 6e | 69 71 75 65 57 69 74 68 |ec;...un|iqueWith|
|00001e20| 69 6e 53 65 63 6f 6e 64 | 20 3d 20 31 3b 0d 09 7d |inSecond| = 1;..}|
|00001e30| 0d 09 73 70 72 69 6e 74 | 66 28 69 64 2c 20 22 3c |..sprint|f(id, "<|
|00001e40| 25 2e 2a 73 2d 25 2e 32 | 64 25 2e 32 64 25 2e 32 |%.*s-%.2|d%.2d%.2|
|00001e50| 64 25 2e 32 64 25 2e 32 | 64 25 2e 32 64 25 2e 34 |d%.2d%.2|d%.2d%.4|
|00001e60| 64 40 25 73 3e 22 2c 0d | 09 09 6c 65 6e 2c 20 67 |d@%s>",.|..len, g|
|00001e70| 50 72 65 66 73 2e 65 6d | 61 69 6c 41 64 64 72 65 |Prefs.em|ailAddre|
|00001e80| 73 73 2c 20 64 74 52 65 | 63 2e 64 61 79 2c 20 64 |ss, dtRe|c.day, d|
|00001e90| 74 52 65 63 2e 6d 6f 6e | 74 68 2c 0d 09 09 64 74 |tRec.mon|th,...dt|
|00001ea0| 52 65 63 2e 79 65 61 72 | 25 31 30 30 2c 20 64 74 |Rec.year|%100, dt|
|00001eb0| 52 65 63 2e 68 6f 75 72 | 2c 20 64 74 52 65 63 2e |Rec.hour|, dtRec.|
|00001ec0| 6d 69 6e 75 74 65 2c 20 | 64 74 52 65 63 2e 73 65 |minute, |dtRec.se|
|00001ed0| 63 6f 6e 64 2c 20 0d 09 | 09 75 6e 69 71 75 65 57 |cond, ..|.uniqueW|
|00001ee0| 69 74 68 69 6e 53 65 63 | 6f 6e 64 2c 20 68 6f 73 |ithinSec|ond, hos|
|00001ef0| 74 4e 61 6d 65 29 3b 0d | 09 72 65 74 75 72 6e 20 |tName);.|.return |
|00001f00| 6e 6f 45 72 72 3b 0d 7d | 0d 0d 0d 0d 2f 2a 2d 2d |noErr;.}|..../*--|
|00001f10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001f20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001f30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001f40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001f50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 09 41 64 64 48 |--------|--..AddH|
|00001f60| 65 61 64 65 72 20 0d 09 | 0d 09 41 64 64 20 61 20 |eader ..|..Add a |
|00001f70| 73 69 6e 67 6c 65 20 68 | 65 61 64 65 72 20 6c 69 |single h|eader li|
|00001f80| 6e 65 20 74 6f 20 61 20 | 68 65 61 64 65 72 20 75 |ne to a |header u|
|00001f90| 6e 64 65 72 20 63 6f 6e | 73 74 72 75 63 74 69 6f |nder con|structio|
|00001fa0| 6e 2e 0d 09 0d 09 45 6e | 74 72 79 3a 09 6b 65 79 |n.....En|try:.key|
|00001fb0| 20 3d 20 43 2d 66 6f 72 | 6d 61 74 20 68 65 61 64 | = C-for|mat head|
|00001fc0| 65 72 20 6e 61 6d 65 20 | 73 74 72 69 6e 67 2c 20 |er name |string, |
|00001fd0| 6e 6f 74 20 69 6e 63 6c | 75 64 69 6e 67 20 74 68 |not incl|uding th|
|00001fe0| 65 20 0d 09 09 09 09 74 | 65 72 6d 69 6e 61 74 69 |e .....t|erminati|
|00001ff0| 6e 67 20 63 6f 6c 6f 6e | 2e 0d 09 09 09 68 64 72 |ng colon|.....hdr|
|00002000| 43 6f 6e 74 65 6e 74 73 | 20 3d 20 70 6f 69 6e 74 |Contents| = point|
|00002010| 65 72 20 74 6f 20 68 65 | 61 64 65 72 20 63 6f 6e |er to he|ader con|
|00002020| 74 65 6e 74 73 2e 20 4e | 69 6c 20 6f 72 20 65 6d |tents. N|il or em|
|00002030| 70 74 79 20 69 66 20 6e | 6f 6e 65 2e 0d 09 09 09 |pty if n|one.....|
|00002040| 68 64 72 43 6f 6e 74 65 | 6e 74 73 4c 65 6e 20 3d |hdrConte|ntsLen =|
|00002050| 20 6c 65 6e 67 74 68 20 | 6f 66 20 68 65 61 64 65 | length |of heade|
|00002060| 72 20 63 6f 6e 74 65 6e | 74 73 2e 0d 09 09 09 68 |r conten|ts.....h|
|00002070| 64 72 20 3d 20 68 61 6e | 64 6c 65 20 74 6f 20 68 |dr = han|dle to h|
|00002080| 65 61 64 65 72 20 75 6e | 64 65 72 20 63 6f 6e 73 |eader un|der cons|
|00002090| 74 72 75 63 74 69 6f 6e | 2e 0d 09 09 09 2a 68 64 |truction|.....*hd|
|000020a0| 72 4e 65 78 74 20 3d 20 | 69 6e 64 65 78 20 69 6e |rNext = |index in|
|000020b0| 20 68 65 61 64 65 72 20 | 74 6f 20 73 74 6f 72 65 | header |to store|
|000020c0| 20 6e 65 78 74 20 6c 69 | 6e 65 2e 0d 09 09 09 73 | next li|ne.....s|
|000020d0| 74 72 69 70 57 68 69 74 | 65 53 70 61 63 65 20 3d |tripWhit|eSpace =|
|000020e0| 20 74 72 75 65 20 74 6f | 20 73 74 72 69 70 20 77 | true to| strip w|
|000020f0| 68 69 74 65 20 73 70 61 | 63 65 20 66 72 6f 6d 20 |hite spa|ce from |
|00002100| 68 65 61 64 65 72 20 63 | 6f 6e 74 65 6e 74 73 2e |header c|ontents.|
|00002110| 0d 09 09 09 6c 69 6e 65 | 42 72 65 61 6b 4d 61 70 |....line|BreakMap|
|00002120| 70 69 6e 67 20 3d 20 6c | 69 6e 65 20 62 72 65 61 |ping = l|ine brea|
|00002130| 6b 20 6d 61 70 70 69 6e | 67 20 69 6e 20 68 65 61 |k mappin|g in hea|
|00002140| 64 65 72 20 63 6f 6e 74 | 65 6e 74 73 2e 0d 09 09 |der cont|ents....|
|00002150| 09 0d 09 45 78 69 74 3a | 09 66 75 6e 63 74 69 6f |...Exit:|.functio|
|00002160| 6e 20 72 65 73 75 6c 74 | 20 3d 20 65 72 72 6f 72 |n result| = error|
|00002170| 20 63 6f 64 65 2e 0d 09 | 09 09 2a 68 64 72 4e 65 | code...|..*hdrNe|
|00002180| 78 74 20 75 70 64 61 74 | 65 64 2e 0d 2d 2d 2d 2d |xt updat|ed..----|
|00002190| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000021a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000021b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000021c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000021d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2a 2f 0d 0d 73 74 61 74 |--------|*/..stat|
|000021e0| 69 63 20 4f 53 45 72 72 | 20 41 64 64 48 65 61 64 |ic OSErr| AddHead|
|000021f0| 65 72 20 28 63 68 61 72 | 20 2a 6b 65 79 2c 20 63 |er (char| *key, c|
|00002200| 68 61 72 20 2a 68 64 72 | 43 6f 6e 74 65 6e 74 73 |har *hdr|Contents|
|00002210| 2c 20 6c 6f 6e 67 20 68 | 64 72 43 6f 6e 74 65 6e |, long h|drConten|
|00002220| 74 73 4c 65 6e 2c 20 0d | 09 48 61 6e 64 6c 65 20 |tsLen, .|.Handle |
|00002230| 68 64 72 2c 20 6c 6f 6e | 67 20 2a 68 64 72 4e 65 |hdr, lon|g *hdrNe|
|00002240| 78 74 2c 20 42 6f 6f 6c | 65 61 6e 20 73 74 72 69 |xt, Bool|ean stri|
|00002250| 70 57 68 69 74 65 53 70 | 61 63 65 2c 20 0d 09 45 |pWhiteSp|ace, ..E|
|00002260| 4c 69 6e 65 42 72 65 61 | 6b 4d 61 70 70 69 6e 67 |LineBrea|kMapping|
|00002270| 20 6c 69 6e 65 42 72 65 | 61 6b 4d 61 70 70 69 6e | lineBre|akMappin|
|00002280| 67 29 0d 7b 0d 09 6c 6f | 6e 67 20 6e 65 78 74 2c |g).{..lo|ng next,|
|00002290| 20 73 69 7a 65 2c 20 6c | 65 6e 2c 20 6b 65 79 4c | size, l|en, keyL|
|000022a0| 65 6e 3b 0d 09 4f 53 45 | 72 72 20 65 72 72 20 3d |en;..OSE|rr err =|
|000022b0| 20 6e 6f 45 72 72 3b 0d | 09 63 68 61 72 20 2a 73 | noErr;.|.char *s|
|000022c0| 74 61 72 74 2c 20 2a 65 | 6e 64 2c 20 2a 70 2c 20 |tart, *e|nd, *p, |
|000022d0| 2a 71 3b 0d 09 0d 09 69 | 66 20 28 68 64 72 43 6f |*q;....i|f (hdrCo|
|000022e0| 6e 74 65 6e 74 73 20 3d | 3d 20 6e 69 6c 29 20 72 |ntents =|= nil) r|
|000022f0| 65 74 75 72 6e 20 6e 6f | 45 72 72 3b 0d 09 73 74 |eturn no|Err;..st|
|00002300| 61 72 74 20 3d 20 68 64 | 72 43 6f 6e 74 65 6e 74 |art = hd|rContent|
|00002310| 73 3b 0d 09 65 6e 64 20 | 3d 20 73 74 61 72 74 20 |s;..end |= start |
|00002320| 2b 20 68 64 72 43 6f 6e | 74 65 6e 74 73 4c 65 6e |+ hdrCon|tentsLen|
|00002330| 20 2d 20 31 3b 0d 09 77 | 68 69 6c 65 20 28 73 74 | - 1;..w|hile (st|
|00002340| 61 72 74 20 3c 3d 20 65 | 6e 64 20 26 26 20 69 73 |art <= e|nd && is|
|00002350| 4c 57 53 50 6f 72 43 52 | 28 2a 73 74 61 72 74 29 |LWSPorCR|(*start)|
|00002360| 29 20 73 74 61 72 74 2b | 2b 3b 0d 09 77 68 69 6c |) start+|+;..whil|
|00002370| 65 20 28 73 74 61 72 74 | 20 3c 3d 20 65 6e 64 20 |e (start| <= end |
|00002380| 26 26 20 69 73 4c 57 53 | 50 6f 72 43 52 28 2a 65 |&& isLWS|PorCR(*e|
|00002390| 6e 64 29 29 20 65 6e 64 | 2d 2d 3b 0d 09 68 64 72 |nd)) end|--;..hdr|
|000023a0| 43 6f 6e 74 65 6e 74 73 | 4c 65 6e 20 3d 20 65 6e |Contents|Len = en|
|000023b0| 64 20 2d 20 73 74 61 72 | 74 20 2b 20 31 3b 0d 09 |d - star|t + 1;..|
|000023c0| 69 66 20 28 68 64 72 43 | 6f 6e 74 65 6e 74 73 4c |if (hdrC|ontentsL|
|000023d0| 65 6e 20 3c 3d 20 30 29 | 20 72 65 74 75 72 6e 20 |en <= 0)| return |
|000023e0| 6e 6f 45 72 72 3b 0d 09 | 0d 09 6b 65 79 4c 65 6e |noErr;..|..keyLen|
|000023f0| 20 3d 20 73 74 72 6c 65 | 6e 28 6b 65 79 29 3b 0d | = strle|n(key);.|
|00002400| 09 6c 65 6e 20 3d 20 6b | 65 79 4c 65 6e 20 2b 20 |.len = k|eyLen + |
|00002410| 68 64 72 43 6f 6e 74 65 | 6e 74 73 4c 65 6e 20 2b |hdrConte|ntsLen +|
|00002420| 20 33 3b 0d 09 0d 09 6e | 65 78 74 20 3d 20 2a 68 | 3;....n|ext = *h|
|00002430| 64 72 4e 65 78 74 3b 0d | 09 73 69 7a 65 20 3d 20 |drNext;.|.size = |
|00002440| 4d 79 47 65 74 48 61 6e | 64 6c 65 53 69 7a 65 28 |MyGetHan|dleSize(|
|00002450| 68 64 72 29 3b 0d 09 69 | 66 20 28 6e 65 78 74 20 |hdr);..i|f (next |
|00002460| 2b 20 6c 65 6e 20 3e 20 | 73 69 7a 65 29 20 7b 0d |+ len > |size) {.|
|00002470| 09 09 65 72 72 20 3d 20 | 4d 79 53 65 74 48 61 6e |..err = |MySetHan|
|00002480| 64 6c 65 53 69 7a 65 28 | 68 64 72 2c 20 6e 65 78 |dleSize(|hdr, nex|
|00002490| 74 20 2b 20 6c 65 6e 20 | 2b 20 31 30 30 30 29 3b |t + len |+ 1000);|
|000024a0| 0d 09 09 69 66 20 28 65 | 72 72 20 21 3d 20 6e 6f |...if (e|rr != no|
|000024b0| 45 72 72 29 20 72 65 74 | 75 72 6e 20 65 72 72 3b |Err) ret|urn err;|
|000024c0| 0d 09 7d 0d 09 0d 09 71 | 20 3d 20 2a 68 64 72 20 |..}....q| = *hdr |
|000024d0| 2b 20 6e 65 78 74 3b 0d | 09 42 6c 6f 63 6b 4d 6f |+ next;.|.BlockMo|
|000024e0| 76 65 44 61 74 61 28 6b | 65 79 2c 20 71 2c 20 6b |veData(k|ey, q, k|
|000024f0| 65 79 4c 65 6e 29 3b 0d | 09 71 20 2b 3d 20 6b 65 |eyLen);.|.q += ke|
|00002500| 79 4c 65 6e 3b 0d 09 42 | 6c 6f 63 6b 4d 6f 76 65 |yLen;..B|lockMove|
|00002510| 44 61 74 61 28 22 3a 20 | 22 2c 20 71 2c 20 32 29 |Data(": |", q, 2)|
|00002520| 3b 0d 09 71 20 2b 3d 20 | 32 3b 0d 09 0d 09 70 20 |;..q += |2;....p |
|00002530| 3d 20 73 74 61 72 74 3b | 0d 09 77 68 69 6c 65 20 |= start;|..while |
|00002540| 28 70 20 3c 3d 20 65 6e | 64 29 20 7b 0d 09 09 69 |(p <= en|d) {...i|
|00002550| 66 20 28 73 74 72 69 70 | 57 68 69 74 65 53 70 61 |f (strip|WhiteSpa|
|00002560| 63 65 20 26 26 20 69 73 | 4c 57 53 50 28 2a 70 29 |ce && is|LWSP(*p)|
|00002570| 29 20 7b 0d 09 09 09 70 | 2b 2b 3b 0d 09 09 7d 20 |) {....p|++;...} |
|00002580| 65 6c 73 65 20 69 66 20 | 28 2a 70 20 3d 3d 20 43 |else if |(*p == C|
|00002590| 52 20 26 26 20 6c 69 6e | 65 42 72 65 61 6b 4d 61 |R && lin|eBreakMa|
|000025a0| 70 70 69 6e 67 20 21 3d | 20 6b 4e 6f 4d 61 70 43 |pping !=| kNoMapC|
|000025b0| 52 29 20 7b 0d 09 09 09 | 71 2d 2d 3b 0d 09 09 09 |R) {....|q--;....|
|000025c0| 77 68 69 6c 65 20 28 71 | 20 3e 3d 20 2a 68 64 72 |while (q| >= *hdr|
|000025d0| 20 26 26 20 69 73 4c 57 | 53 50 6f 72 43 52 28 2a | && isLW|SPorCR(*|
|000025e0| 71 29 29 20 71 2d 2d 3b | 0d 09 09 09 71 2b 2b 3b |q)) q--;|....q++;|
|000025f0| 0d 09 09 09 70 2b 2b 3b | 0d 09 09 09 77 68 69 6c |....p++;|....whil|
|00002600| 65 20 28 70 20 3c 3d 20 | 65 6e 64 20 26 26 20 69 |e (p <= |end && i|
|00002610| 73 4c 57 53 50 6f 72 43 | 52 28 2a 70 29 29 20 70 |sLWSPorC|R(*p)) p|
|00002620| 2b 2b 3b 0d 09 09 09 73 | 77 69 74 63 68 20 28 6c |++;....s|witch (l|
|00002630| 69 6e 65 42 72 65 61 6b | 4d 61 70 70 69 6e 67 29 |ineBreak|Mapping)|
|00002640| 20 7b 0d 09 09 09 09 63 | 61 73 65 20 6b 4d 61 70 | {.....c|ase kMap|
|00002650| 54 6f 53 70 61 63 65 3a | 0d 09 09 09 09 09 2a 71 |ToSpace:|......*q|
|00002660| 2b 2b 20 3d 20 27 20 27 | 3b 0d 09 09 09 09 09 62 |++ = ' '|;......b|
|00002670| 72 65 61 6b 3b 0d 09 09 | 09 09 63 61 73 65 20 6b |reak;...|..case k|
|00002680| 4d 61 70 54 6f 43 6f 6d | 6d 61 3a 0d 09 09 09 09 |MapToCom|ma:.....|
|00002690| 09 2a 71 2b 2b 20 3d 20 | 27 2c 27 3b 0d 09 09 09 |.*q++ = |',';....|
|000026a0| 09 09 62 72 65 61 6b 3b | 0d 09 09 09 09 63 61 73 |..break;|.....cas|
|000026b0| 65 20 6b 4d 61 70 54 6f | 43 52 3a 0d 09 09 09 09 |e kMapTo|CR:.....|
|000026c0| 09 2a 71 2b 2b 20 3d 20 | 43 52 3b 0d 09 09 09 09 |.*q++ = |CR;.....|
|000026d0| 09 62 72 65 61 6b 3b 0d | 09 09 09 7d 0d 09 09 7d |.break;.|...}...}|
|000026e0| 20 65 6c 73 65 20 7b 0d | 09 09 09 2a 71 2b 2b 20 | else {.|...*q++ |
|000026f0| 3d 20 2a 70 2b 2b 3b 0d | 09 09 7d 0d 09 7d 0d 09 |= *p++;.|..}..}..|
|00002700| 2a 71 2b 2b 20 3d 20 43 | 52 3b 0d 09 0d 09 2a 68 |*q++ = C|R;....*h|
|00002710| 64 72 4e 65 78 74 20 3d | 20 71 20 2d 20 2a 68 64 |drNext =| q - *hd|
|00002720| 72 3b 0d 09 72 65 74 75 | 72 6e 20 6e 6f 45 72 72 |r;..retu|rn noErr|
|00002730| 3b 0d 7d 0d 0d 0d 0d 2f | 2a 2d 2d 2d 2d 2d 2d 2d |;.}..../|*-------|
|00002740| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002750| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002760| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002770| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002780| 2d 2d 2d 2d 2d 0d 09 41 | 64 64 48 65 61 64 65 72 |-----..A|ddHeader|
|00002790| 43 53 74 72 69 6e 67 20 | 0d 09 0d 09 41 64 64 20 |CString |....Add |
|000027a0| 61 20 73 69 6e 67 6c 65 | 20 43 2d 66 6f 72 6d 61 |a single| C-forma|
|000027b0| 74 20 68 65 61 64 65 72 | 20 6c 69 6e 65 20 74 6f |t header| line to|
|000027c0| 20 61 20 68 65 61 64 65 | 72 20 75 6e 64 65 72 20 | a heade|r under |
|000027d0| 63 6f 6e 73 74 72 75 63 | 74 69 6f 6e 2e 0d 09 0d |construc|tion....|
|000027e0| 09 45 6e 74 72 79 3a 09 | 6b 65 79 20 3d 20 43 2d |.Entry:.|key = C-|
|000027f0| 66 6f 72 6d 61 74 20 68 | 65 61 64 65 72 20 6e 61 |format h|eader na|
|00002800| 6d 65 20 73 74 72 69 6e | 67 2c 20 6e 6f 74 20 69 |me strin|g, not i|
|00002810| 6e 63 6c 75 64 69 6e 67 | 20 74 68 65 20 0d 09 09 |ncluding| the ...|
|00002820| 09 09 74 65 72 6d 69 6e | 61 74 69 6e 67 20 63 6f |..termin|ating co|
|00002830| 6c 6f 6e 2e 0d 09 09 09 | 68 64 72 43 6f 6e 74 65 |lon.....|hdrConte|
|00002840| 6e 74 73 20 3d 20 43 2d | 66 6f 72 6d 61 74 20 68 |nts = C-|format h|
|00002850| 65 61 64 65 72 20 63 6f | 6e 74 65 6e 74 73 2e 20 |eader co|ntents. |
|00002860| 4e 69 6c 20 6f 72 20 65 | 6d 70 74 79 20 69 66 20 |Nil or e|mpty if |
|00002870| 6e 6f 6e 65 2e 0d 09 09 | 09 68 64 72 20 3d 20 68 |none....|.hdr = h|
|00002880| 61 6e 64 6c 65 20 74 6f | 20 68 65 61 64 65 72 20 |andle to| header |
|00002890| 75 6e 64 65 72 20 63 6f | 6e 73 74 72 75 63 74 69 |under co|nstructi|
|000028a0| 6f 6e 2e 0d 09 09 09 2a | 68 64 72 4e 65 78 74 20 |on.....*|hdrNext |
|000028b0| 3d 20 69 6e 64 65 78 20 | 69 6e 20 68 65 61 64 65 |= index |in heade|
|000028c0| 72 20 74 6f 20 73 74 6f | 72 65 20 6e 65 78 74 20 |r to sto|re next |
|000028d0| 6c 69 6e 65 2e 0d 09 09 | 09 73 74 72 69 70 57 68 |line....|.stripWh|
|000028e0| 69 74 65 53 70 61 63 65 | 20 3d 20 74 72 75 65 20 |iteSpace| = true |
|000028f0| 74 6f 20 73 74 72 69 70 | 20 77 68 69 74 65 20 73 |to strip| white s|
|00002900| 70 61 63 65 20 66 72 6f | 6d 20 68 65 61 64 65 72 |pace fro|m header|
|00002910| 20 63 6f 6e 74 65 6e 74 | 73 2e 0d 09 09 09 6c 69 | content|s.....li|
|00002920| 6e 65 42 72 65 61 6b 4d | 61 70 70 69 6e 67 20 3d |neBreakM|apping =|
|00002930| 20 6c 69 6e 65 20 62 72 | 65 61 6b 20 6d 61 70 70 | line br|eak mapp|
|00002940| 69 6e 67 20 69 6e 20 68 | 65 61 64 65 72 20 63 6f |ing in h|eader co|
|00002950| 6e 74 65 6e 74 73 2e 0d | 09 09 09 0d 09 45 78 69 |ntents..|.....Exi|
|00002960| 74 3a 09 66 75 6e 63 74 | 69 6f 6e 20 72 65 73 75 |t:.funct|ion resu|
|00002970| 6c 74 20 3d 20 65 72 72 | 6f 72 20 63 6f 64 65 2e |lt = err|or code.|
|00002980| 0d 09 09 09 2a 68 64 72 | 4e 65 78 74 20 75 70 64 |....*hdr|Next upd|
|00002990| 61 74 65 64 2e 0d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |ated..--|--------|
|000029a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000029b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000029c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000029d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000029e0| 2d 2d 2a 2f 0d 0d 73 74 | 61 74 69 63 20 4f 53 45 |--*/..st|atic OSE|
|000029f0| 72 72 20 41 64 64 48 65 | 61 64 65 72 43 53 74 72 |rr AddHe|aderCStr|
|00002a00| 69 6e 67 20 28 63 68 61 | 72 20 2a 6b 65 79 2c 20 |ing (cha|r *key, |
|00002a10| 63 68 61 72 20 2a 68 64 | 72 43 6f 6e 74 65 6e 74 |char *hd|rContent|
|00002a20| 73 2c 20 48 61 6e 64 6c | 65 20 68 64 72 2c 20 6c |s, Handl|e hdr, l|
|00002a30| 6f 6e 67 20 2a 68 64 72 | 4e 65 78 74 2c 20 0d 09 |ong *hdr|Next, ..|
|00002a40| 42 6f 6f 6c 65 61 6e 20 | 73 74 72 69 70 57 68 69 |Boolean |stripWhi|
|00002a50| 74 65 53 70 61 63 65 2c | 20 45 4c 69 6e 65 42 72 |teSpace,| ELineBr|
|00002a60| 65 61 6b 4d 61 70 70 69 | 6e 67 20 6c 69 6e 65 42 |eakMappi|ng lineB|
|00002a70| 72 65 61 6b 4d 61 70 70 | 69 6e 67 29 0d 7b 0d 09 |reakMapp|ing).{..|
|00002a80| 72 65 74 75 72 6e 20 41 | 64 64 48 65 61 64 65 72 |return A|ddHeader|
|00002a90| 28 6b 65 79 2c 20 68 64 | 72 43 6f 6e 74 65 6e 74 |(key, hd|rContent|
|00002aa0| 73 2c 20 73 74 72 6c 65 | 6e 28 68 64 72 43 6f 6e |s, strle|n(hdrCon|
|00002ab0| 74 65 6e 74 73 29 2c 20 | 68 64 72 2c 20 68 64 72 |tents), |hdr, hdr|
|00002ac0| 4e 65 78 74 2c 0d 09 09 | 73 74 72 69 70 57 68 69 |Next,...|stripWhi|
|00002ad0| 74 65 53 70 61 63 65 2c | 20 6c 69 6e 65 42 72 65 |teSpace,| lineBre|
|00002ae0| 61 6b 4d 61 70 70 69 6e | 67 29 3b 0d 7d 0d 0d 0d |akMappin|g);.}...|
|00002af0| 0d 2f 2a 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |./*-----|--------|
|00002b00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002b10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002b20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002b30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 0d |--------|-------.|
|00002b40| 09 41 64 64 48 65 61 64 | 65 72 48 61 6e 64 6c 65 |.AddHead|erHandle|
|00002b50| 20 0d 09 0d 09 41 64 64 | 20 61 20 73 69 6e 67 6c | ....Add| a singl|
|00002b60| 65 20 68 65 61 64 65 72 | 20 6c 69 6e 65 20 63 6f |e header| line co|
|00002b70| 6e 74 61 69 6e 65 64 20 | 69 6e 20 61 20 72 65 6c |ntained |in a rel|
|00002b80| 6f 63 61 74 61 62 6c 65 | 20 62 6c 6f 63 6b 20 74 |ocatable| block t|
|00002b90| 6f 20 61 20 68 65 61 64 | 65 72 20 0d 09 75 6e 64 |o a head|er ..und|
|00002ba0| 65 72 20 63 6f 6e 73 74 | 72 75 63 74 69 6f 6e 2e |er const|ruction.|
|00002bb0| 0d 09 0d 09 45 6e 74 72 | 79 3a 09 6b 65 79 20 3d |....Entr|y:.key =|
|00002bc0| 20 43 2d 66 6f 72 6d 61 | 74 20 68 65 61 64 65 72 | C-forma|t header|
|00002bd0| 20 6e 61 6d 65 20 73 74 | 72 69 6e 67 2c 20 6e 6f | name st|ring, no|
|00002be0| 74 20 69 6e 63 6c 75 64 | 69 6e 67 20 74 68 65 20 |t includ|ing the |
|00002bf0| 0d 09 09 09 09 74 65 72 | 6d 69 6e 61 74 69 6e 67 |.....ter|minating|
|00002c00| 20 63 6f 6c 6f 6e 2e 0d | 09 09 09 68 64 72 43 6f | colon..|...hdrCo|
|00002c10| 6e 74 65 6e 74 73 20 3d | 20 68 61 6e 64 6c 65 20 |ntents =| handle |
|00002c20| 74 6f 20 68 65 61 64 65 | 72 20 63 6f 6e 74 65 6e |to heade|r conten|
|00002c30| 74 73 2e 20 4e 69 6c 20 | 6f 72 20 65 6d 70 74 79 |ts. Nil |or empty|
|00002c40| 20 69 66 20 6e 6f 6e 65 | 2e 0d 09 09 09 68 64 72 | if none|.....hdr|
|00002c50| 20 3d 20 68 61 6e 64 6c | 65 20 74 6f 20 68 65 61 | = handl|e to hea|
|00002c60| 64 65 72 20 75 6e 64 65 | 72 20 63 6f 6e 73 74 72 |der unde|r constr|
|00002c70| 75 63 74 69 6f 6e 2e 0d | 09 09 09 2a 68 64 72 4e |uction..|...*hdrN|
|00002c80| 65 78 74 20 3d 20 69 6e | 64 65 78 20 69 6e 20 68 |ext = in|dex in h|
|00002c90| 65 61 64 65 72 20 74 6f | 20 73 74 6f 72 65 20 6e |eader to| store n|
|00002ca0| 65 78 74 20 6c 69 6e 65 | 2e 0d 09 09 09 73 74 72 |ext line|.....str|
|00002cb0| 69 70 57 68 69 74 65 53 | 70 61 63 65 20 3d 20 74 |ipWhiteS|pace = t|
|00002cc0| 72 75 65 20 74 6f 20 73 | 74 72 69 70 20 77 68 69 |rue to s|trip whi|
|00002cd0| 74 65 20 73 70 61 63 65 | 20 66 72 6f 6d 20 68 65 |te space| from he|
|00002ce0| 61 64 65 72 20 63 6f 6e | 74 65 6e 74 73 2e 0d 09 |ader con|tents...|
|00002cf0| 09 09 6c 69 6e 65 42 72 | 65 61 6b 4d 61 70 70 69 |..lineBr|eakMappi|
|00002d00| 6e 67 20 3d 20 6c 69 6e | 65 20 62 72 65 61 6b 20 |ng = lin|e break |
|00002d10| 6d 61 70 70 69 6e 67 20 | 69 6e 20 68 65 61 64 65 |mapping |in heade|
|00002d20| 72 20 63 6f 6e 74 65 6e | 74 73 2e 0d 09 09 09 0d |r conten|ts......|
|00002d30| 09 45 78 69 74 3a 09 66 | 75 6e 63 74 69 6f 6e 20 |.Exit:.f|unction |
|00002d40| 72 65 73 75 6c 74 20 3d | 20 65 72 72 6f 72 20 63 |result =| error c|
|00002d50| 6f 64 65 2e 0d 09 09 09 | 2a 68 64 72 4e 65 78 74 |ode.....|*hdrNext|
|00002d60| 20 75 70 64 61 74 65 64 | 2e 0d 2d 2d 2d 2d 2d 2d | updated|..------|
|00002d70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002d80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002d90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002da0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002db0| 2d 2d 2d 2d 2d 2d 2a 2f | 0d 0d 73 74 61 74 69 63 |------*/|..static|
|00002dc0| 20 4f 53 45 72 72 20 41 | 64 64 48 65 61 64 65 72 | OSErr A|ddHeader|
|00002dd0| 48 61 6e 64 6c 65 20 28 | 63 68 61 72 20 2a 6b 65 |Handle (|char *ke|
|00002de0| 79 2c 20 48 61 6e 64 6c | 65 20 68 64 72 43 6f 6e |y, Handl|e hdrCon|
|00002df0| 74 65 6e 74 73 2c 20 48 | 61 6e 64 6c 65 20 68 64 |tents, H|andle hd|
|00002e00| 72 2c 20 6c 6f 6e 67 20 | 2a 68 64 72 4e 65 78 74 |r, long |*hdrNext|
|00002e10| 2c 0d 09 42 6f 6f 6c 65 | 61 6e 20 73 74 72 69 70 |,..Boole|an strip|
|00002e20| 57 68 69 74 65 53 70 61 | 63 65 2c 20 45 4c 69 6e |WhiteSpa|ce, ELin|
|00002e30| 65 42 72 65 61 6b 4d 61 | 70 70 69 6e 67 20 6c 69 |eBreakMa|pping li|
|00002e40| 6e 65 42 72 65 61 6b 4d | 61 70 70 69 6e 67 29 0d |neBreakM|apping).|
|00002e50| 7b 0d 09 4f 53 45 72 72 | 20 65 72 72 20 3d 20 6e |{..OSErr| err = n|
|00002e60| 6f 45 72 72 3b 0d 09 63 | 68 61 72 20 73 74 61 74 |oErr;..c|har stat|
|00002e70| 65 3b 0d 0d 09 69 66 20 | 28 68 64 72 43 6f 6e 74 |e;...if |(hdrCont|
|00002e80| 65 6e 74 73 20 3d 3d 20 | 6e 69 6c 29 20 72 65 74 |ents == |nil) ret|
|00002e90| 75 72 6e 20 6e 6f 45 72 | 72 3b 0d 09 73 74 61 74 |urn noEr|r;..stat|
|00002ea0| 65 20 3d 20 4d 79 48 47 | 65 74 53 74 61 74 65 28 |e = MyHG|etState(|
|00002eb0| 68 64 72 43 6f 6e 74 65 | 6e 74 73 29 3b 0d 09 4d |hdrConte|nts);..M|
|00002ec0| 79 48 4c 6f 63 6b 28 68 | 64 72 43 6f 6e 74 65 6e |yHLock(h|drConten|
|00002ed0| 74 73 29 3b 0d 09 65 72 | 72 20 3d 20 41 64 64 48 |ts);..er|r = AddH|
|00002ee0| 65 61 64 65 72 28 6b 65 | 79 2c 20 2a 68 64 72 43 |eader(ke|y, *hdrC|
|00002ef0| 6f 6e 74 65 6e 74 73 2c | 20 4d 79 47 65 74 48 61 |ontents,| MyGetHa|
|00002f00| 6e 64 6c 65 53 69 7a 65 | 28 68 64 72 43 6f 6e 74 |ndleSize|(hdrCont|
|00002f10| 65 6e 74 73 29 2c 20 68 | 64 72 2c 20 68 64 72 4e |ents), h|dr, hdrN|
|00002f20| 65 78 74 2c 0d 09 09 73 | 74 72 69 70 57 68 69 74 |ext,...s|tripWhit|
|00002f30| 65 53 70 61 63 65 2c 20 | 6c 69 6e 65 42 72 65 61 |eSpace, |lineBrea|
|00002f40| 6b 4d 61 70 70 69 6e 67 | 29 3b 0d 09 4d 79 48 53 |kMapping|);..MyHS|
|00002f50| 65 74 53 74 61 74 65 28 | 68 64 72 43 6f 6e 74 65 |etState(|hdrConte|
|00002f60| 6e 74 73 2c 20 73 74 61 | 74 65 29 3b 0d 09 72 65 |nts, sta|te);..re|
|00002f70| 74 75 72 6e 20 65 72 72 | 3b 0d 7d 0d 0d 0d 0d 2f |turn err|;.}..../|
|00002f80| 2a 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |*-------|--------|
|00002f90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002fa0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002fb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002fc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0d 09 41 |--------|-----..A|
|00002fd0| 64 64 45 78 74 72 61 48 | 65 61 64 65 72 4c 69 6e |ddExtraH|eaderLin|
|00002fe0| 65 73 0d 09 0d 09 41 64 | 64 20 65 78 74 72 61 20 |es....Ad|d extra |
|00002ff0| 68 65 61 64 65 72 20 6c | 69 6e 65 73 2c 20 6f 76 |header l|ines, ov|
|00003000| 65 72 72 69 64 69 6e 67 | 20 61 6e 79 20 65 61 72 |erriding| any ear|
|00003010| 6c 69 65 72 20 6f 6e 65 | 73 2e 0d 09 0d 09 45 6e |lier one|s.....En|
|00003020| 74 72 79 3a 09 65 78 74 | 72 61 73 20 3d 20 68 61 |try:.ext|ras = ha|
|00003030| 6e 64 6c 65 20 74 6f 20 | 65 78 74 72 61 20 68 65 |ndle to |extra he|
|00003040| 61 64 65 72 20 6c 69 6e | 65 73 2e 20 4e 69 6c 20 |ader lin|es. Nil |
|00003050| 6f 72 20 65 6d 70 74 79 | 20 69 66 20 6e 6f 6e 65 |or empty| if none|
|00003060| 2e 0d 09 09 09 68 64 72 | 20 3d 20 68 61 6e 64 6c |.....hdr| = handl|
|00003070| 65 20 74 6f 20 68 65 61 | 64 65 72 20 75 6e 64 65 |e to hea|der unde|
|00003080| 72 20 63 6f 6e 73 74 72 | 75 63 74 69 6f 6e 2e 0d |r constr|uction..|
|00003090| 09 09 09 2a 68 64 72 4e | 65 78 74 20 3d 20 69 6e |...*hdrN|ext = in|
|000030a0| 64 65 78 20 69 6e 20 68 | 65 61 64 65 72 20 74 6f |dex in h|eader to|
|000030b0| 20 73 74 6f 72 65 20 6e | 65 78 74 20 6c 69 6e 65 | store n|ext line|
|000030c0| 2e 0d 09 09 09 0d 09 45 | 78 69 74 3a 09 66 75 6e |.......E|xit:.fun|
|000030d0| 63 74 69 6f 6e 20 72 65 | 73 75 6c 74 20 3d 20 65 |ction re|sult = e|
|000030e0| 72 72 6f 72 20 63 6f 64 | 65 2e 0d 09 09 09 2a 68 |rror cod|e.....*h|
|000030f0| 64 72 4e 65 78 74 20 75 | 70 64 61 74 65 64 2e 0d |drNext u|pdated..|
|00003100| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003110| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003120| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003130| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003140| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2a 2f 0d 0d |--------|----*/..|
|00003150| 73 74 61 74 69 63 20 4f | 53 45 72 72 20 41 64 64 |static O|SErr Add|
|00003160| 45 78 74 72 61 48 65 61 | 64 65 72 4c 69 6e 65 73 |ExtraHea|derLines|
|00003170| 20 28 48 61 6e 64 6c 65 | 20 65 78 74 72 61 73 2c | (Handle| extras,|
|00003180| 20 48 61 6e 64 6c 65 20 | 68 64 72 2c 20 6c 6f 6e | Handle |hdr, lon|
|00003190| 67 20 2a 68 64 72 4e 65 | 78 74 29 0d 7b 0d 09 6c |g *hdrNe|xt).{..l|
|000031a0| 6f 6e 67 20 6b 65 79 4c | 65 6e 2c 20 63 6f 6e 74 |ong keyL|en, cont|
|000031b0| 65 6e 74 4c 65 6e 3b 0d | 09 4f 53 45 72 72 20 65 |entLen;.|.OSErr e|
|000031c0| 72 72 20 3d 20 6e 6f 45 | 72 72 3b 0d 09 63 68 61 |rr = noE|rr;..cha|
|000031d0| 72 20 2a 70 2c 20 2a 70 | 45 6e 64 2c 20 2a 71 2c |r *p, *p|End, *q,|
|000031e0| 20 2a 72 2c 20 2a 73 3b | 0d 09 43 53 74 72 32 35 | *r, *s;|..CStr25|
|000031f0| 35 20 6b 65 79 3b 0d 09 | 6c 6f 6e 67 20 73 74 61 |5 key;..|long sta|
|00003200| 72 74 2c 20 6c 65 6e 3b | 0d 09 63 68 61 72 20 73 |rt, len;|..char s|
|00003210| 74 61 74 65 3b 0d 09 0d | 09 73 74 61 74 65 20 3d |tate;...|.state =|
|00003220| 20 4d 79 48 47 65 74 53 | 74 61 74 65 28 65 78 74 | MyHGetS|tate(ext|
|00003230| 72 61 73 29 3b 0d 0d 09 | 69 66 20 28 65 78 74 72 |ras);...|if (extr|
|00003240| 61 73 20 3d 3d 20 6e 69 | 6c 29 20 72 65 74 75 72 |as == ni|l) retur|
|00003250| 6e 20 6e 6f 45 72 72 3b | 0d 09 4d 79 48 4c 6f 63 |n noErr;|..MyHLoc|
|00003260| 6b 28 65 78 74 72 61 73 | 29 3b 0d 09 70 20 3d 20 |k(extras|);..p = |
|00003270| 2a 65 78 74 72 61 73 3b | 0d 09 70 45 6e 64 20 3d |*extras;|..pEnd =|
|00003280| 20 70 20 2b 20 4d 79 47 | 65 74 48 61 6e 64 6c 65 | p + MyG|etHandle|
|00003290| 53 69 7a 65 28 65 78 74 | 72 61 73 29 3b 0d 09 77 |Size(ext|ras);..w|
|000032a0| 68 69 6c 65 20 28 70 20 | 3c 20 70 45 6e 64 29 20 |hile (p |< pEnd) |
|000032b0| 7b 0d 09 09 71 20 3d 20 | 70 3b 0d 09 09 77 68 69 |{...q = |p;...whi|
|000032c0| 6c 65 20 28 71 20 3c 20 | 70 45 6e 64 20 26 26 20 |le (q < |pEnd && |
|000032d0| 2a 71 20 21 3d 20 43 52 | 20 26 26 20 2a 71 20 21 |*q != CR| && *q !|
|000032e0| 3d 20 27 3a 27 29 20 71 | 2b 2b 3b 0d 09 09 69 66 |= ':') q|++;...if|
|000032f0| 20 28 71 20 3e 3d 20 70 | 45 6e 64 20 7c 7c 20 2a | (q >= p|End || *|
|00003300| 71 20 3d 3d 20 43 52 29 | 20 7b 0d 09 09 09 70 20 |q == CR)| {....p |
|00003310| 3d 20 71 2b 31 3b 0d 09 | 09 09 63 6f 6e 74 69 6e |= q+1;..|..contin|
|00003320| 75 65 3b 0d 09 09 7d 0d | 09 09 73 20 3d 20 72 20 |ue;...}.|..s = r |
|00003330| 3d 20 71 2b 31 3b 0d 09 | 09 77 68 69 6c 65 20 28 |= q+1;..|.while (|
|00003340| 74 72 75 65 29 20 7b 0d | 09 09 09 77 68 69 6c 65 |true) {.|...while|
|00003350| 20 28 72 20 3c 20 70 45 | 6e 64 20 26 26 20 2a 72 | (r < pE|nd && *r|
|00003360| 20 21 3d 20 43 52 29 20 | 72 2b 2b 3b 0d 09 09 09 | != CR) |r++;....|
|00003370| 69 66 20 28 72 20 3e 3d | 20 70 45 6e 64 29 20 62 |if (r >=| pEnd) b|
|00003380| 72 65 61 6b 3b 0d 09 09 | 09 69 66 20 28 21 69 73 |reak;...|.if (!is|
|00003390| 4c 57 53 50 28 2a 28 72 | 2b 31 29 29 29 20 62 72 |LWSP(*(r|+1))) br|
|000033a0| 65 61 6b 3b 0d 09 09 09 | 72 2b 2b 3b 0d 09 09 7d |eak;....|r++;...}|
|000033b0| 0d 09 09 71 2d 2d 3b 0d | 09 09 77 68 69 6c 65 20 |...q--;.|..while |
|000033c0| 28 71 20 3e 3d 20 70 20 | 26 26 20 69 73 4c 57 53 |(q >= p |&& isLWS|
|000033d0| 50 28 2a 71 29 29 20 71 | 2d 2d 3b 0d 09 09 71 2b |P(*q)) q|--;...q+|
|000033e0| 2b 3b 0d 09 09 69 66 20 | 28 70 20 3c 20 71 29 20 |+;...if |(p < q) |
|000033f0| 7b 0d 09 09 09 6b 65 79 | 4c 65 6e 20 3d 20 71 20 |{....key|Len = q |
|00003400| 2d 20 70 3b 0d 09 09 09 | 69 66 20 28 6b 65 79 4c |- p;....|if (keyL|
|00003410| 65 6e 20 3c 20 32 35 36 | 29 20 7b 0d 09 09 09 09 |en < 256|) {.....|
|00003420| 42 6c 6f 63 6b 4d 6f 76 | 65 44 61 74 61 28 70 2c |BlockMov|eData(p,|
|00003430| 20 6b 65 79 2c 20 6b 65 | 79 4c 65 6e 29 3b 0d 09 | key, ke|yLen);..|
|00003440| 09 09 09 6b 65 79 5b 6b | 65 79 4c 65 6e 5d 20 3d |...key[k|eyLen] =|
|00003450| 20 30 3b 0d 09 09 09 09 | 77 68 69 6c 65 20 28 73 | 0;.....|while (s|
|00003460| 20 3c 20 70 45 6e 64 20 | 26 26 20 69 73 4c 57 53 | < pEnd |&& isLWS|
|00003470| 50 28 2a 73 29 29 20 73 | 2b 2b 3b 0d 09 09 09 09 |P(*s)) s|++;.....|
|00003480| 63 6f 6e 74 65 6e 74 4c | 65 6e 20 3d 20 72 20 2d |contentL|en = r -|
|00003490| 20 73 3b 0d 09 09 09 09 | 69 66 20 28 63 6f 6e 74 | s;.....|if (cont|
|000034a0| 65 6e 74 4c 65 6e 20 3e | 20 30 29 20 7b 0d 09 09 |entLen >| 0) {...|
|000034b0| 09 09 09 69 66 20 28 4c | 6f 63 61 74 65 48 65 61 |...if (L|ocateHea|
|000034c0| 64 65 72 4c 69 6e 65 28 | 68 64 72 2c 20 2a 68 64 |derLine(|hdr, *hd|
|000034d0| 72 4e 65 78 74 2c 20 6b | 65 79 2c 20 26 73 74 61 |rNext, k|ey, &sta|
|000034e0| 72 74 2c 20 26 6c 65 6e | 29 29 20 7b 0d 09 09 09 |rt, &len|)) {....|
|000034f0| 09 09 09 4d 75 6e 67 65 | 72 28 68 64 72 2c 20 73 |...Munge|r(hdr, s|
|00003500| 74 61 72 74 2c 20 6e 69 | 6c 2c 20 6c 65 6e 2c 20 |tart, ni|l, len, |
|00003510| 73 2c 20 63 6f 6e 74 65 | 6e 74 4c 65 6e 29 3b 0d |s, conte|ntLen);.|
|00003520| 09 09 09 09 09 09 65 72 | 72 20 3d 20 4d 65 6d 45 |......er|r = MemE|
|00003530| 72 72 6f 72 28 29 3b 0d | 09 09 09 09 09 09 69 66 |rror();.|......if|
|00003540| 20 28 65 72 72 20 21 3d | 20 6e 6f 45 72 72 29 20 | (err !=| noErr) |
|00003550| 67 6f 74 6f 20 65 78 69 | 74 3b 0d 09 09 09 09 09 |goto exi|t;......|
|00003560| 09 2a 68 64 72 4e 65 78 | 74 20 2b 3d 20 63 6f 6e |.*hdrNex|t += con|
|00003570| 74 65 6e 74 4c 65 6e 20 | 2d 20 6c 65 6e 3b 0d 09 |tentLen |- len;..|
|00003580| 09 09 09 09 7d 20 65 6c | 73 65 20 7b 0d 09 09 09 |....} el|se {....|
|00003590| 09 09 09 65 72 72 20 3d | 20 41 64 64 48 65 61 64 |...err =| AddHead|
|000035a0| 65 72 28 6b 65 79 2c 20 | 73 2c 20 63 6f 6e 74 65 |er(key, |s, conte|
|000035b0| 6e 74 4c 65 6e 2c 20 68 | 64 72 2c 20 68 64 72 4e |ntLen, h|dr, hdrN|
|000035c0| 65 78 74 2c 20 66 61 6c | 73 65 2c 20 6b 4e 6f 4d |ext, fal|se, kNoM|
|000035d0| 61 70 43 52 29 3b 0d 09 | 09 09 09 09 09 69 66 20 |apCR);..|.....if |
|000035e0| 28 65 72 72 20 21 3d 20 | 6e 6f 45 72 72 29 20 67 |(err != |noErr) g|
|000035f0| 6f 74 6f 20 65 78 69 74 | 3b 0d 09 09 09 09 09 7d |oto exit|;......}|
|00003600| 0d 09 09 09 09 7d 0d 09 | 09 09 7d 0d 09 09 7d 0d |.....}..|..}...}.|
|00003610| 09 09 70 20 3d 20 72 2b | 31 3b 0d 09 7d 0d 0d 65 |..p = r+|1;..}..e|
|00003620| 78 69 74 3a 0d 0d 09 4d | 79 48 53 65 74 53 74 61 |xit:...M|yHSetSta|
|00003630| 74 65 28 65 78 74 72 61 | 73 2c 20 73 74 61 74 65 |te(extra|s, state|
|00003640| 29 3b 0d 09 72 65 74 75 | 72 6e 20 65 72 72 3b 0d |);..retu|rn err;.|
|00003650| 7d 0d 0d 0d 0d 2f 2a 2d | 2d 2d 2d 2d 2d 2d 2d 2d |}..../*-|--------|
|00003660| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003670| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003680| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003690| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000036a0| 2d 2d 2d 0d 09 48 65 61 | 64 65 72 4c 69 6e 65 49 |---..Hea|derLineI|
|000036b0| 73 45 6d 70 74 79 20 0d | 09 0d 09 43 68 65 63 6b |sEmpty .|...Check|
|000036c0| 20 66 6f 72 20 61 6e 20 | 65 6d 70 74 79 20 68 65 | for an |empty he|
|000036d0| 61 64 65 72 20 6c 69 6e | 65 2e 0d 09 0d 09 45 6e |ader lin|e.....En|
|000036e0| 74 72 79 3a 09 68 64 72 | 20 3d 20 68 61 6e 64 6c |try:.hdr| = handl|
|000036f0| 65 20 74 6f 20 68 65 61 | 64 65 72 20 6c 69 6e 65 |e to hea|der line|
|00003700| 2e 0d 09 09 09 0d 09 45 | 78 69 74 3a 09 66 75 6e |.......E|xit:.fun|
|00003710| 63 74 69 6f 6e 20 72 65 | 73 75 6c 74 20 3d 20 74 |ction re|sult = t|
|00003720| 72 75 65 20 69 66 20 68 | 65 61 64 65 72 20 6c 69 |rue if h|eader li|
|00003730| 6e 65 20 69 73 20 65 6d | 70 74 79 20 28 6e 69 6c |ne is em|pty (nil|
|00003740| 2c 20 6f 72 20 63 6f 6e | 73 69 73 74 73 20 0d 09 |, or con|sists ..|
|00003750| 09 09 09 6f 66 20 6f 6e | 6c 79 20 73 70 61 63 65 |...of on|ly space|
|00003760| 2c 20 43 52 2c 20 61 6e | 64 20 74 61 62 20 63 68 |, CR, an|d tab ch|
|00003770| 61 72 61 63 74 65 72 73 | 29 2e 0d 2d 2d 2d 2d 2d |aracters|)..-----|
|00003780| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003790| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000037a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000037b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000037c0| 2d 2d 2d 2d 2d 2d 2d 2a | 2f 0d 0d 42 6f 6f 6c 65 |-------*|/..Boole|
|000037d0| 61 6e 20 48 65 61 64 65 | 72 4c 69 6e 65 49 73 45 |an Heade|rLineIsE|
|000037e0| 6d 70 74 79 20 28 48 61 | 6e 64 6c 65 20 68 64 72 |mpty (Ha|ndle hdr|
|000037f0| 29 0d 7b 0d 09 63 68 61 | 72 20 2a 70 2c 20 2a 70 |).{..cha|r *p, *p|
|00003800| 45 6e 64 3b 0d 0d 09 69 | 66 20 28 68 64 72 20 3d |End;...i|f (hdr =|
|00003810| 3d 20 6e 69 6c 29 20 72 | 65 74 75 72 6e 20 74 72 |= nil) r|eturn tr|
|00003820| 75 65 3b 0d 09 70 20 3d | 20 2a 68 64 72 3b 0d 09 |ue;..p =| *hdr;..|
|00003830| 70 45 6e 64 20 3d 20 70 | 20 2b 20 4d 79 47 65 74 |pEnd = p| + MyGet|
|00003840| 48 61 6e 64 6c 65 53 69 | 7a 65 28 68 64 72 29 3b |HandleSi|ze(hdr);|
|00003850| 0d 09 77 68 69 6c 65 20 | 28 70 20 3c 20 70 45 6e |..while |(p < pEn|
|00003860| 64 20 26 26 20 69 73 4c | 57 53 50 6f 72 43 52 28 |d && isL|WSPorCR(|
|00003870| 2a 70 29 29 20 70 2b 2b | 3b 0d 09 72 65 74 75 72 |*p)) p++|;..retur|
|00003880| 6e 20 70 20 3e 3d 20 70 | 45 6e 64 3b 0d 7d 0d 0d |n p >= p|End;.}..|
|00003890| 0d 0d 2f 2a 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |../*----|--------|
|000038a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000038b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000038c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000038d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000038e0| 0d 09 4d 61 6b 65 4e 65 | 77 73 48 65 61 64 65 72 |..MakeNe|wsHeader|
|000038f0| 20 0d 09 0d 09 4d 61 6b | 65 20 61 20 6e 65 77 73 | ....Mak|e a news|
|00003900| 20 61 72 74 69 63 6c 65 | 20 68 65 61 64 65 72 2e | article| header.|
|00003910| 0d 09 0d 09 45 6e 74 72 | 79 3a 09 6e 65 77 73 67 |....Entr|y:.newsg|
|00003920| 72 6f 75 70 73 20 3d 20 | 48 61 6e 64 6c 65 20 74 |roups = |Handle t|
|00003930| 6f 20 22 4e 65 77 73 67 | 72 6f 75 70 73 22 20 68 |o "Newsg|roups" h|
|00003940| 65 61 64 65 72 20 63 6f | 6e 74 65 6e 74 73 2e 0d |eader co|ntents..|
|00003950| 09 09 09 73 75 62 6a 65 | 63 74 20 3d 20 48 61 6e |...subje|ct = Han|
|00003960| 64 6c 65 20 74 6f 20 22 | 53 75 62 6a 65 63 74 22 |dle to "|Subject"|
|00003970| 20 68 65 61 64 65 72 20 | 63 6f 6e 74 65 6e 74 73 | header |contents|
|00003980| 2e 0d 09 09 09 72 65 70 | 6c 79 74 6f 20 3d 20 48 |.....rep|lyto = H|
|00003990| 61 6e 64 6c 65 20 74 6f | 20 22 52 65 70 6c 79 2d |andle to| "Reply-|
|000039a0| 54 6f 22 20 68 65 61 64 | 65 72 20 63 6f 6e 74 65 |To" head|er conte|
|000039b0| 6e 74 73 2e 20 4e 69 6c | 20 6f 72 20 65 6d 70 74 |nts. Nil| or empt|
|000039c0| 79 20 69 66 20 6e 6f 6e | 65 2e 0d 09 09 09 66 6f |y if non|e.....fo|
|000039d0| 6c 6c 6f 77 75 70 74 6f | 20 3d 20 48 61 6e 64 6c |llowupto| = Handl|
|000039e0| 65 20 74 6f 20 22 46 6f | 6c 6c 6f 77 75 70 2d 54 |e to "Fo|llowup-T|
|000039f0| 6f 22 20 68 65 61 64 65 | 72 20 63 6f 6e 74 65 6e |o" heade|r conten|
|00003a00| 74 73 2e 20 4e 69 6c 20 | 6f 72 20 65 6d 70 74 79 |ts. Nil |or empty|
|00003a10| 20 69 66 20 6e 6f 6e 65 | 2e 0d 09 09 09 6b 65 79 | if none|.....key|
|00003a20| 77 6f 72 64 73 20 3d 20 | 48 61 6e 64 6c 65 20 74 |words = |Handle t|
|00003a30| 6f 20 22 4b 65 79 77 6f | 72 64 73 22 20 68 65 61 |o "Keywo|rds" hea|
|00003a40| 64 65 72 20 63 6f 6e 74 | 65 6e 74 73 2e 20 4e 69 |der cont|ents. Ni|
|00003a50| 6c 20 6f 72 20 65 6d 70 | 74 79 20 69 66 20 6e 6f |l or emp|ty if no|
|00003a60| 6e 65 2e 0d 09 09 09 64 | 69 73 74 72 69 62 75 74 |ne.....d|istribut|
|00003a70| 69 6f 6e 20 3d 20 48 61 | 6e 64 6c 65 20 74 6f 20 |ion = Ha|ndle to |
|00003a80| 22 44 69 73 74 72 69 62 | 75 74 69 6f 6e 22 20 68 |"Distrib|ution" h|
|00003a90| 65 61 64 65 72 20 63 6f | 6e 74 65 6e 74 73 2e 20 |eader co|ntents. |
|00003aa0| 4e 69 6c 20 6f 72 20 65 | 6d 70 74 79 20 69 66 20 |Nil or e|mpty if |
|00003ab0| 6e 6f 6e 65 2e 0d 09 09 | 09 65 78 74 72 61 73 20 |none....|.extras |
|00003ac0| 3d 20 48 61 6e 64 6c 65 | 20 74 6f 20 65 78 74 72 |= Handle| to extr|
|00003ad0| 61 20 68 65 61 64 65 72 | 20 6c 69 6e 65 73 2e 20 |a header| lines. |
|00003ae0| 4e 69 6c 20 6f 72 20 65 | 6d 70 74 79 20 69 66 20 |Nil or e|mpty if |
|00003af0| 6e 6f 6e 65 2e 0d 09 09 | 09 63 6f 6e 74 72 6f 6c |none....|.control|
|00003b00| 20 3d 20 48 61 6e 64 6c | 65 20 74 6f 20 22 43 6f | = Handl|e to "Co|
|00003b10| 6e 74 72 6f 6c 22 20 68 | 65 61 64 65 72 20 63 6f |ntrol" h|eader co|
|00003b20| 6e 74 65 6e 74 73 2e 20 | 4e 69 6c 20 6f 72 20 65 |ntents. |Nil or e|
|00003b30| 6d 70 74 79 20 69 66 20 | 6e 6f 6e 65 2e 0d 09 09 |mpty if |none....|
|00003b40| 09 72 65 66 65 72 65 6e | 63 65 73 20 3d 20 48 61 |.referen|ces = Ha|
|00003b50| 6e 64 6c 65 20 74 6f 20 | 22 52 65 66 65 72 65 6e |ndle to |"Referen|
|00003b60| 63 65 73 22 20 68 65 61 | 64 65 72 20 63 6f 6e 74 |ces" hea|der cont|
|00003b70| 65 6e 74 73 2e 20 4e 69 | 6c 20 6f 72 20 65 6d 70 |ents. Ni|l or emp|
|00003b80| 74 79 20 69 66 20 6e 6f | 6e 65 2e 0d 09 09 09 0d |ty if no|ne......|
|00003b90| 09 45 78 69 74 3a 09 66 | 75 6e 63 74 69 6f 6e 20 |.Exit:.f|unction |
|00003ba0| 72 65 73 75 6c 74 20 3d | 20 65 72 72 6f 72 20 63 |result =| error c|
|00003bb0| 6f 64 65 2e 0d 09 09 09 | 68 65 61 64 65 72 20 3d |ode.....|header =|
|00003bc0| 20 68 61 6e 64 6c 65 20 | 74 6f 20 68 65 61 64 65 | handle |to heade|
|00003bd0| 72 2e 0d 09 09 09 09 0d | 09 54 68 65 20 63 6f 6e |r.......|.The con|
|00003be0| 73 74 72 75 63 74 65 64 | 20 68 65 61 64 65 72 20 |structed| header |
|00003bf0| 69 6e 63 6c 75 64 65 73 | 20 61 20 62 6c 61 6e 6b |includes| a blank|
|00003c00| 20 6c 69 6e 65 20 61 74 | 20 74 68 65 20 65 6e 64 | line at| the end|
|00003c10| 20 28 43 52 43 52 29 2e | 0d 2d 2d 2d 2d 2d 2d 2d | (CRCR).|.-------|
|00003c20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003c30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003c40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003c50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003c60| 2d 2d 2d 2d 2d 2a 2f 0d | 0d 4f 53 45 72 72 20 4d |-----*/.|.OSErr M|
|00003c70| 61 6b 65 4e 65 77 73 48 | 65 61 64 65 72 20 28 48 |akeNewsH|eader (H|
|00003c80| 61 6e 64 6c 65 20 6e 65 | 77 73 67 72 6f 75 70 73 |andle ne|wsgroups|
|00003c90| 2c 20 48 61 6e 64 6c 65 | 20 73 75 62 6a 65 63 74 |, Handle| subject|
|00003ca0| 2c 20 48 61 6e 64 6c 65 | 20 72 65 70 6c 79 74 6f |, Handle| replyto|
|00003cb0| 2c 20 0d 09 48 61 6e 64 | 6c 65 20 66 6f 6c 6c 6f |, ..Hand|le follo|
|00003cc0| 77 75 70 74 6f 2c 20 48 | 61 6e 64 6c 65 20 6b 65 |wupto, H|andle ke|
|00003cd0| 79 77 6f 72 64 73 2c 20 | 48 61 6e 64 6c 65 20 64 |ywords, |Handle d|
|00003ce0| 69 73 74 72 69 62 75 74 | 69 6f 6e 2c 20 48 61 6e |istribut|ion, Han|
|00003cf0| 64 6c 65 20 65 78 74 72 | 61 73 2c 20 0d 09 48 61 |dle extr|as, ..Ha|
|00003d00| 6e 64 6c 65 20 63 6f 6e | 74 72 6f 6c 2c 20 48 61 |ndle con|trol, Ha|
|00003d10| 6e 64 6c 65 20 72 65 66 | 65 72 65 6e 63 65 73 2c |ndle ref|erences,|
|00003d20| 20 48 61 6e 64 6c 65 20 | 2a 68 65 61 64 65 72 29 | Handle |*header)|
|00003d30| 0d 7b 0d 09 48 61 6e 64 | 6c 65 20 68 64 72 3b 0d |.{..Hand|le hdr;.|
|00003d40| 09 4f 53 45 72 72 20 65 | 72 72 20 3d 20 6e 6f 45 |.OSErr e|rr = noE|
|00003d50| 72 72 3b 0d 09 6c 6f 6e | 67 20 68 64 72 4e 65 78 |rr;..lon|g hdrNex|
|00003d60| 74 3b 0d 09 43 53 74 72 | 32 35 35 20 64 61 74 65 |t;..CStr|255 date|
|00003d70| 3b 0d 09 63 68 61 72 20 | 70 61 74 68 5b 32 36 31 |;..char |path[261|
|00003d80| 5d 3b 0d 09 63 68 61 72 | 20 66 72 6f 6d 5b 35 31 |];..char| from[51|
|00003d90| 34 5d 3b 0d 09 63 68 61 | 72 20 6d 65 73 73 61 67 |4];..cha|r messag|
|00003da0| 65 69 64 5b 35 31 32 5d | 3b 0d 09 0d 09 4d 79 49 |eid[512]|;....MyI|
|00003db0| 43 52 65 61 64 53 68 61 | 72 65 64 50 72 65 66 73 |CReadSha|redPrefs|
|00003dc0| 28 6b 49 43 4f 72 67 61 | 6e 69 7a 61 74 69 6f 6e |(kICOrga|nization|
|00003dd0| 29 3b 0d 09 0d 09 65 72 | 72 20 3d 20 4d 79 4e 65 |);....er|r = MyNe|
|00003de0| 77 48 61 6e 64 6c 65 28 | 31 30 30 30 2c 20 26 68 |wHandle(|1000, &h|
|00003df0| 64 72 29 3b 0d 09 69 66 | 20 28 65 72 72 20 21 3d |dr);..if| (err !=|
|00003e00| 20 6e 6f 45 72 72 29 20 | 72 65 74 75 72 6e 20 65 | noErr) |return e|
|00003e10| 72 72 3b 0d 09 68 64 72 | 4e 65 78 74 20 3d 20 30 |rr;..hdr|Next = 0|
|00003e20| 3b 0d 09 0d 09 65 72 72 | 20 3d 20 4d 61 6b 65 50 |;....err| = MakeP|
|00003e30| 61 74 68 48 65 61 64 65 | 72 28 70 61 74 68 29 3b |athHeade|r(path);|
|00003e40| 0d 09 69 66 20 28 65 72 | 72 20 21 3d 20 6e 6f 45 |..if (er|r != noE|
|00003e50| 72 72 29 20 67 6f 74 6f | 20 65 78 69 74 3b 0d 09 |rr) goto| exit;..|
|00003e60| 4d 61 6b 65 44 61 74 65 | 48 65 61 64 65 72 28 64 |MakeDate|Header(d|
|00003e70| 61 74 65 29 3b 0d 09 4d | 61 6b 65 46 72 6f 6d 48 |ate);..M|akeFromH|
|00003e80| 65 61 64 65 72 28 66 72 | 6f 6d 29 3b 0d 09 65 72 |eader(fr|om);..er|
|00003e90| 72 20 3d 20 4d 61 6b 65 | 4d 73 67 49 64 48 65 61 |r = Make|MsgIdHea|
|00003ea0| 64 65 72 28 6d 65 73 73 | 61 67 65 69 64 29 3b 0d |der(mess|ageid);.|
|00003eb0| 09 69 66 20 28 65 72 72 | 20 21 3d 20 6e 6f 45 72 |.if (err| != noEr|
|00003ec0| 72 29 20 67 6f 74 6f 20 | 65 78 69 74 3b 0d 09 0d |r) goto |exit;...|
|00003ed0| 09 65 72 72 20 3d 20 41 | 64 64 48 65 61 64 65 72 |.err = A|ddHeader|
|00003ee0| 43 53 74 72 69 6e 67 28 | 22 50 61 74 68 22 2c 20 |CString(|"Path", |
|00003ef0| 70 61 74 68 2c 20 68 64 | 72 2c 20 26 68 64 72 4e |path, hd|r, &hdrN|
|00003f00| 65 78 74 2c 20 66 61 6c | 73 65 2c 20 6b 4d 61 70 |ext, fal|se, kMap|
|00003f10| 54 6f 53 70 61 63 65 29 | 3b 0d 09 69 66 20 28 65 |ToSpace)|;..if (e|
|00003f20| 72 72 20 21 3d 20 6e 6f | 45 72 72 29 20 67 6f 74 |rr != no|Err) got|
|00003f30| 6f 20 65 78 69 74 3b 0d | 09 65 72 72 20 3d 20 41 |o exit;.|.err = A|
|00003f40| 64 64 48 65 61 64 65 72 | 43 53 74 72 69 6e 67 28 |ddHeader|CString(|
|00003f50| 22 44 61 74 65 22 2c 20 | 64 61 74 65 2c 20 68 64 |"Date", |date, hd|
|00003f60| 72 2c 20 26 68 64 72 4e | 65 78 74 2c 20 66 61 6c |r, &hdrN|ext, fal|
|00003f70| 73 65 2c 20 6b 4d 61 70 | 54 6f 53 70 61 63 65 29 |se, kMap|ToSpace)|
|00003f80| 3b 0d 09 69 66 20 28 65 | 72 72 20 21 3d 20 6e 6f |;..if (e|rr != no|
|00003f90| 45 72 72 29 20 67 6f 74 | 6f 20 65 78 69 74 3b 0d |Err) got|o exit;.|
|00003fa0| 09 65 72 72 20 3d 20 41 | 64 64 48 65 61 64 65 72 |.err = A|ddHeader|
|00003fb0| 43 53 74 72 69 6e 67 28 | 22 46 72 6f 6d 22 2c 20 |CString(|"From", |
|00003fc0| 66 72 6f 6d 2c 20 68 64 | 72 2c 20 26 68 64 72 4e |from, hd|r, &hdrN|
|00003fd0| 65 78 74 2c 20 66 61 6c | 73 65 2c 20 6b 4d 61 70 |ext, fal|se, kMap|
|00003fe0| 54 6f 53 70 61 63 65 29 | 3b 0d 09 69 66 20 28 65 |ToSpace)|;..if (e|
|00003ff0| 72 72 20 21 3d 20 6e 6f | 45 72 72 29 20 67 6f 74 |rr != no|Err) got|
|00004000| 6f 20 65 78 69 74 3b 0d | 09 65 72 72 20 3d 20 41 |o exit;.|.err = A|
|00004010| 64 64 48 65 61 64 65 72 | 48 61 6e 64 6c 65 28 22 |ddHeader|Handle("|
|00004020| 4e 65 77 73 67 72 6f 75 | 70 73 22 2c 20 6e 65 77 |Newsgrou|ps", new|
|00004030| 73 67 72 6f 75 70 73 2c | 20 68 64 72 2c 20 26 68 |sgroups,| hdr, &h|
|00004040| 64 72 4e 65 78 74 2c 20 | 74 72 75 65 2c 20 6b 4d |drNext, |true, kM|
|00004050| 61 70 54 6f 43 6f 6d 6d | 61 29 3b 0d 09 69 66 20 |apToComm|a);..if |
|00004060| 28 65 72 72 20 21 3d 20 | 6e 6f 45 72 72 29 20 67 |(err != |noErr) g|
|00004070| 6f 74 6f 20 65 78 69 74 | 3b 0d 09 65 72 72 20 3d |oto exit|;..err =|
|00004080| 20 41 64 64 48 65 61 64 | 65 72 48 61 6e 64 6c 65 | AddHead|erHandle|
|00004090| 28 22 46 6f 6c 6c 6f 77 | 75 70 2d 54 6f 22 2c 20 |("Follow|up-To", |
|000040a0| 66 6f 6c 6c 6f 77 75 70 | 74 6f 2c 20 68 64 72 2c |followup|to, hdr,|
|000040b0| 20 26 68 64 72 4e 65 78 | 74 2c 20 74 72 75 65 2c | &hdrNex|t, true,|
|000040c0| 20 6b 4d 61 70 54 6f 43 | 6f 6d 6d 61 29 3b 0d 09 | kMapToC|omma);..|
|000040d0| 69 66 20 28 65 72 72 20 | 21 3d 20 6e 6f 45 72 72 |if (err |!= noErr|
|000040e0| 29 20 67 6f 74 6f 20 65 | 78 69 74 3b 0d 09 65 72 |) goto e|xit;..er|
|000040f0| 72 20 3d 20 41 64 64 48 | 65 61 64 65 72 48 61 6e |r = AddH|eaderHan|
|00004100| 64 6c 65 28 22 52 65 70 | 6c 79 2d 54 6f 22 2c 20 |dle("Rep|ly-To", |
|00004110| 72 65 70 6c 79 74 6f 2c | 20 68 64 72 2c 20 26 68 |replyto,| hdr, &h|
|00004120| 64 72 4e 65 78 74 2c 20 | 66 61 6c 73 65 2c 20 6b |drNext, |false, k|
|00004130| 4d 61 70 54 6f 43 6f 6d | 6d 61 29 3b 0d 09 69 66 |MapToCom|ma);..if|
|00004140| 20 28 65 72 72 20 21 3d | 20 6e 6f 45 72 72 29 20 | (err !=| noErr) |
|00004150| 67 6f 74 6f 20 65 78 69 | 74 3b 0d 09 65 72 72 20 |goto exi|t;..err |
|00004160| 3d 20 41 64 64 48 65 61 | 64 65 72 48 61 6e 64 6c |= AddHea|derHandl|
|00004170| 65 28 22 44 69 73 74 72 | 69 62 75 74 69 6f 6e 22 |e("Distr|ibution"|
|00004180| 2c 20 64 69 73 74 72 69 | 62 75 74 69 6f 6e 2c 20 |, distri|bution, |
|00004190| 68 64 72 2c 20 26 68 64 | 72 4e 65 78 74 2c 20 66 |hdr, &hd|rNext, f|
|000041a0| 61 6c 73 65 2c 20 6b 4d | 61 70 54 6f 53 70 61 63 |alse, kM|apToSpac|
|000041b0| 65 29 3b 0d 09 69 66 20 | 28 65 72 72 20 21 3d 20 |e);..if |(err != |
|000041c0| 6e 6f 45 72 72 29 20 67 | 6f 74 6f 20 65 78 69 74 |noErr) g|oto exit|
|000041d0| 3b 0d 09 65 72 72 20 3d | 20 41 64 64 48 65 61 64 |;..err =| AddHead|
|000041e0| 65 72 48 61 6e 64 6c 65 | 28 22 4b 65 79 77 6f 72 |erHandle|("Keywor|
|000041f0| 64 73 22 2c 20 6b 65 79 | 77 6f 72 64 73 2c 20 68 |ds", key|words, h|
|00004200| 64 72 2c 20 26 68 64 72 | 4e 65 78 74 2c 20 66 61 |dr, &hdr|Next, fa|
|00004210| 6c 73 65 2c 20 6b 4d 61 | 70 54 6f 53 70 61 63 65 |lse, kMa|pToSpace|
|00004220| 29 3b 0d 09 69 66 20 28 | 65 72 72 20 21 3d 20 6e |);..if (|err != n|
|00004230| 6f 45 72 72 29 20 67 6f | 74 6f 20 65 78 69 74 3b |oErr) go|to exit;|
|00004240| 0d 09 65 72 72 20 3d 20 | 41 64 64 48 65 61 64 65 |..err = |AddHeade|
|00004250| 72 48 61 6e 64 6c 65 28 | 22 53 75 62 6a 65 63 74 |rHandle(|"Subject|
|00004260| 22 2c 20 73 75 62 6a 65 | 63 74 2c 20 68 64 72 2c |", subje|ct, hdr,|
|00004270| 20 26 68 64 72 4e 65 78 | 74 2c 20 66 61 6c 73 65 | &hdrNex|t, false|
|00004280| 2c 20 6b 4d 61 70 54 6f | 53 70 61 63 65 29 3b 0d |, kMapTo|Space);.|
|00004290| 09 69 66 20 28 65 72 72 | 20 21 3d 20 6e 6f 45 72 |.if (err| != noEr|
|000042a0| 72 29 20 67 6f 74 6f 20 | 65 78 69 74 3b 0d 09 65 |r) goto |exit;..e|
|000042b0| 72 72 20 3d 20 41 64 64 | 48 65 61 64 65 72 43 53 |rr = Add|HeaderCS|
|000042c0| 74 72 69 6e 67 28 22 4d | 65 73 73 61 67 65 2d 49 |tring("M|essage-I|
|000042d0| 44 22 2c 20 6d 65 73 73 | 61 67 65 69 64 2c 20 68 |D", mess|ageid, h|
|000042e0| 64 72 2c 20 26 68 64 72 | 4e 65 78 74 2c 20 66 61 |dr, &hdr|Next, fa|
|000042f0| 6c 73 65 2c 20 6b 4d 61 | 70 54 6f 53 70 61 63 65 |lse, kMa|pToSpace|
|00004300| 29 3b 0d 09 69 66 20 28 | 65 72 72 20 21 3d 20 6e |);..if (|err != n|
|00004310| 6f 45 72 72 29 20 67 6f | 74 6f 20 65 78 69 74 3b |oErr) go|to exit;|
|00004320| 0d 09 65 72 72 20 3d 20 | 41 64 64 48 65 61 64 65 |..err = |AddHeade|
|00004330| 72 48 61 6e 64 6c 65 28 | 22 52 65 66 65 72 65 6e |rHandle(|"Referen|
|00004340| 63 65 73 22 2c 20 72 65 | 66 65 72 65 6e 63 65 73 |ces", re|ferences|
|00004350| 2c 20 68 64 72 2c 20 26 | 68 64 72 4e 65 78 74 2c |, hdr, &|hdrNext,|
|00004360| 20 66 61 6c 73 65 2c 20 | 6b 4e 6f 4d 61 70 43 52 | false, |kNoMapCR|
|00004370| 29 3b 0d 09 69 66 20 28 | 65 72 72 20 21 3d 20 6e |);..if (|err != n|
|00004380| 6f 45 72 72 29 20 67 6f | 74 6f 20 65 78 69 74 3b |oErr) go|to exit;|
|00004390| 0d 09 65 72 72 20 3d 20 | 41 64 64 48 65 61 64 65 |..err = |AddHeade|
|000043a0| 72 43 53 74 72 69 6e 67 | 28 22 4f 72 67 61 6e 69 |rCString|("Organi|
|000043b0| 7a 61 74 69 6f 6e 22 2c | 20 67 50 72 65 66 73 2e |zation",| gPrefs.|
|000043c0| 6f 72 67 61 6e 69 7a 61 | 74 69 6f 6e 2c 20 68 64 |organiza|tion, hd|
|000043d0| 72 2c 20 26 68 64 72 4e | 65 78 74 2c 20 66 61 6c |r, &hdrN|ext, fal|
|000043e0| 73 65 2c 20 6b 4d 61 70 | 54 6f 53 70 61 63 65 29 |se, kMap|ToSpace)|
|000043f0| 3b 0d 09 69 66 20 28 65 | 72 72 20 21 3d 20 6e 6f |;..if (e|rr != no|
|00004400| 45 72 72 29 20 67 6f 74 | 6f 20 65 78 69 74 3b 0d |Err) got|o exit;.|
|00004410| 09 65 72 72 20 3d 20 41 | 64 64 48 65 61 64 65 72 |.err = A|ddHeader|
|00004420| 48 61 6e 64 6c 65 28 22 | 43 6f 6e 74 72 6f 6c 22 |Handle("|Control"|
|00004430| 2c 20 63 6f 6e 74 72 6f | 6c 2c 20 68 64 72 2c 20 |, contro|l, hdr, |
|00004440| 26 68 64 72 4e 65 78 74 | 2c 20 66 61 6c 73 65 2c |&hdrNext|, false,|
|00004450| 20 6b 4d 61 70 54 6f 53 | 70 61 63 65 29 3b 0d 09 | kMapToS|pace);..|
|00004460| 69 66 20 28 65 72 72 20 | 21 3d 20 6e 6f 45 72 72 |if (err |!= noErr|
|00004470| 29 20 67 6f 74 6f 20 65 | 78 69 74 3b 0d 09 65 72 |) goto e|xit;..er|
|00004480| 72 20 3d 20 41 64 64 45 | 78 74 72 61 48 65 61 64 |r = AddE|xtraHead|
|00004490| 65 72 4c 69 6e 65 73 28 | 65 78 74 72 61 73 2c 20 |erLines(|extras, |
|000044a0| 68 64 72 2c 20 26 68 64 | 72 4e 65 78 74 29 3b 0d |hdr, &hd|rNext);.|
|000044b0| 09 69 66 20 28 65 72 72 | 20 21 3d 20 6e 6f 45 72 |.if (err| != noEr|
|000044c0| 72 29 20 67 6f 74 6f 20 | 65 78 69 74 3b 0d 09 0d |r) goto |exit;...|
|000044d0| 09 65 72 72 20 3d 20 4d | 79 53 65 74 48 61 6e 64 |.err = M|ySetHand|
|000044e0| 6c 65 53 69 7a 65 28 68 | 64 72 2c 20 68 64 72 4e |leSize(h|dr, hdrN|
|000044f0| 65 78 74 2b 31 29 3b 0d | 09 69 66 20 28 65 72 72 |ext+1);.|.if (err|
|00004500| 20 21 3d 20 6e 6f 45 72 | 72 29 20 67 6f 74 6f 20 | != noEr|r) goto |
|00004510| 65 78 69 74 3b 0d 09 2a | 28 2a 68 64 72 20 2b 20 |exit;..*|(*hdr + |
|00004520| 68 64 72 4e 65 78 74 29 | 20 3d 20 43 52 3b 0d 09 |hdrNext)| = CR;..|
|00004530| 0d 09 2a 68 65 61 64 65 | 72 20 3d 20 68 64 72 3b |..*heade|r = hdr;|
|00004540| 0d 09 72 65 74 75 72 6e | 20 6e 6f 45 72 72 3b 0d |..return| noErr;.|
|00004550| 09 0d 65 78 69 74 3a 0d | 0d 09 4d 79 44 69 73 70 |..exit:.|..MyDisp|
|00004560| 6f 73 65 48 61 6e 64 6c | 65 28 68 64 72 29 3b 0d |oseHandl|e(hdr);.|
|00004570| 09 72 65 74 75 72 6e 20 | 65 72 72 3b 0d 7d 0d 0d |.return |err;.}..|
|00004580| 0d 0d 2f 2a 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |../*----|--------|
|00004590| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000045a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000045b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000045c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000045d0| 0d 09 4d 61 6b 65 4d 61 | 69 6c 48 65 61 64 65 72 |..MakeMa|ilHeader|
|000045e0| 20 0d 09 0d 09 4d 61 6b | 65 20 61 20 6d 61 69 6c | ....Mak|e a mail|
|000045f0| 20 6d 65 73 73 61 67 65 | 20 68 65 61 64 65 72 2e | message| header.|
|00004600| 0d 09 0d 09 45 6e 74 72 | 79 3a 09 73 75 62 6a 65 |....Entr|y:.subje|
|00004610| 63 74 20 3d 20 48 61 6e | 64 6c 65 20 74 6f 20 22 |ct = Han|dle to "|
|00004620| 53 75 62 6a 65 63 74 22 | 20 68 65 61 64 65 72 20 |Subject"| header |
|00004630| 63 6f 6e 74 65 6e 74 73 | 2e 0d 09 09 09 74 6f 20 |contents|.....to |
|00004640| 3d 20 48 61 6e 64 6c 65 | 20 74 6f 20 22 54 6f 22 |= Handle| to "To"|
|00004650| 20 68 65 61 64 65 72 20 | 63 6f 6e 74 65 6e 74 73 | header |contents|
|00004660| 2e 20 4e 69 6c 20 6f 72 | 20 65 6d 70 74 79 20 69 |. Nil or| empty i|
|00004670| 66 20 6e 6f 6e 65 2e 0d | 09 09 09 63 63 20 3d 20 |f none..|...cc = |
|00004680| 48 61 6e 64 6c 65 20 74 | 6f 20 22 43 63 22 20 68 |Handle t|o "Cc" h|
|00004690| 65 61 64 65 72 20 63 6f | 6e 74 65 6e 74 73 2e 20 |eader co|ntents. |
|000046a0| 4e 69 6c 20 6f 72 20 65 | 6d 70 74 79 20 69 66 20 |Nil or e|mpty if |
|000046b0| 6e 6f 6e 65 2e 0d 09 09 | 09 62 63 63 20 3d 20 48 |none....|.bcc = H|
|000046c0| 61 6e 64 6c 65 20 74 6f | 20 22 42 63 63 22 20 68 |andle to| "Bcc" h|
|000046d0| 65 61 64 65 72 20 63 6f | 6e 74 65 6e 74 73 2e 20 |eader co|ntents. |
|000046e0| 4e 69 6c 20 6f 72 20 65 | 6d 70 74 79 20 69 66 20 |Nil or e|mpty if |
|000046f0| 6e 6f 6e 65 2e 0d 09 09 | 09 66 72 6f 6d 20 3d 20 |none....|.from = |
|00004700| 48 61 6e 64 6c 65 20 74 | 6f 20 22 46 72 6f 6d 22 |Handle t|o "From"|
|00004710| 20 68 65 61 64 65 72 20 | 63 6f 6e 74 65 6e 74 73 | header |contents|
|00004720| 2e 20 4e 69 6c 20 6f 72 | 20 65 6d 70 74 79 20 74 |. Nil or| empty t|
|00004730| 6f 20 75 73 65 0d 09 09 | 09 09 67 50 72 65 66 73 |o use...|..gPrefs|
|00004740| 2e 65 6d 61 69 6c 41 64 | 64 72 65 73 73 20 28 67 |.emailAd|dress (g|
|00004750| 50 72 65 66 73 2e 66 75 | 6c 6c 4e 61 6d 65 29 2e |Prefs.fu|llName).|
|00004760| 0d 09 09 09 63 6f 70 79 | 53 65 6c 66 20 3d 20 74 |....copy|Self = t|
|00004770| 72 75 65 20 74 6f 20 69 | 6e 63 6c 75 64 65 20 73 |rue to i|nclude s|
|00004780| 65 6c 66 20 69 6e 20 22 | 62 63 63 22 20 68 65 61 |elf in "|bcc" hea|
|00004790| 64 65 72 20 6c 69 6e 65 | 2c 20 6f 72 20 69 6e 20 |der line|, or in |
|000047a0| 22 74 6f 22 0d 09 09 09 | 09 68 65 61 64 65 72 20 |"to"....|.header |
|000047b0| 6c 69 6e 65 20 69 66 20 | 74 6f 2c 20 63 63 2c 20 |line if |to, cc, |
|000047c0| 61 6e 64 20 62 63 63 20 | 61 72 65 20 61 6c 6c 20 |and bcc |are all |
|000047d0| 65 6d 70 74 79 2e 0d 09 | 09 09 72 65 70 6c 79 74 |empty...|..replyt|
|000047e0| 6f 20 3d 20 48 61 6e 64 | 6c 65 20 74 6f 20 22 52 |o = Hand|le to "R|
|000047f0| 65 70 6c 79 2d 54 6f 22 | 20 68 65 61 64 65 72 20 |eply-To"| header |
|00004800| 63 6f 6e 74 65 6e 74 73 | 2e 20 4e 69 6c 20 6f 72 |contents|. Nil or|
|00004810| 20 65 6d 70 74 79 20 69 | 66 20 6e 6f 6e 65 2e 0d | empty i|f none..|
|00004820| 09 09 09 6b 65 79 77 6f | 72 64 73 20 3d 20 48 61 |...keywo|rds = Ha|
|00004830| 6e 64 6c 65 20 74 6f 20 | 22 4b 65 79 77 6f 72 64 |ndle to |"Keyword|
|00004840| 73 22 20 68 65 61 64 65 | 72 20 63 6f 6e 74 65 6e |s" heade|r conten|
|00004850| 74 73 2e 20 4e 69 6c 20 | 6f 72 20 65 6d 70 74 79 |ts. Nil |or empty|
|00004860| 20 69 66 20 6e 6f 6e 65 | 2e 0d 09 09 09 6e 65 77 | if none|.....new|
|00004870| 73 67 72 6f 75 70 73 20 | 3d 20 48 61 6e 64 6c 65 |sgroups |= Handle|
|00004880| 20 74 6f 20 22 4e 65 77 | 73 67 72 6f 75 70 73 22 | to "New|sgroups"|
|00004890| 20 68 65 61 64 65 72 20 | 63 6f 6e 74 65 6e 74 73 | header |contents|
|000048a0| 2e 20 4e 69 6c 20 6f 72 | 20 65 6d 70 74 79 20 69 |. Nil or| empty i|
|000048b0| 66 20 6e 6f 6e 65 2e 0d | 09 09 09 66 6f 6c 6c 6f |f none..|...follo|
|000048c0| 77 75 70 74 6f 20 3d 20 | 48 61 6e 64 6c 65 20 74 |wupto = |Handle t|
|000048d0| 6f 20 22 46 6f 6c 6c 6f | 77 75 70 2d 54 6f 22 20 |o "Follo|wup-To" |
|000048e0| 68 65 61 64 65 72 20 63 | 6f 6e 74 65 6e 74 73 2e |header c|ontents.|
|000048f0| 20 4e 69 6c 20 6f 72 20 | 65 6d 70 74 79 20 69 66 | Nil or |empty if|
|00004900| 20 6e 6f 6e 65 2e 0d 09 | 09 09 64 69 73 74 72 69 | none...|..distri|
|00004910| 62 75 74 69 6f 6e 20 3d | 20 48 61 6e 64 6c 65 20 |bution =| Handle |
|00004920| 74 6f 20 22 44 69 73 74 | 72 69 62 75 74 69 6f 6e |to "Dist|ribution|
|00004930| 22 20 68 65 61 64 65 72 | 20 63 6f 6e 74 65 6e 74 |" header| content|
|00004940| 73 2e 20 4e 69 6c 20 6f | 72 20 65 6d 70 74 79 20 |s. Nil o|r empty |
|00004950| 69 66 20 6e 6f 6e 65 2e | 0d 09 09 09 65 78 74 72 |if none.|....extr|
|00004960| 61 73 20 3d 20 48 61 6e | 64 6c 65 20 74 6f 20 65 |as = Han|dle to e|
|00004970| 78 74 72 61 20 68 65 61 | 64 65 72 20 6c 69 6e 65 |xtra hea|der line|
|00004980| 73 2e 20 4e 69 6c 20 6f | 72 20 65 6d 70 74 79 20 |s. Nil o|r empty |
|00004990| 69 66 20 6e 6f 6e 65 2e | 0d 09 09 09 72 65 66 65 |if none.|....refe|
|000049a0| 72 65 6e 63 65 73 20 3d | 20 48 61 6e 64 6c 65 20 |rences =| Handle |
|000049b0| 74 6f 20 22 52 65 66 65 | 72 65 6e 63 65 73 22 20 |to "Refe|rences" |
|000049c0| 68 65 61 64 65 72 20 63 | 6f 6e 74 65 6e 74 73 2e |header c|ontents.|
|000049d0| 20 4e 69 6c 20 6f 72 20 | 65 6d 70 74 79 20 69 66 | Nil or |empty if|
|000049e0| 20 6e 6f 6e 65 2e 0d 09 | 09 09 0d 09 45 78 69 74 | none...|....Exit|
|000049f0| 3a 09 66 75 6e 63 74 69 | 6f 6e 20 72 65 73 75 6c |:.functi|on resul|
|00004a00| 74 20 3d 20 65 72 72 6f | 72 20 63 6f 64 65 2e 0d |t = erro|r code..|
|00004a10| 09 09 09 68 65 61 64 65 | 72 20 3d 20 68 61 6e 64 |...heade|r = hand|
|00004a20| 6c 65 20 74 6f 20 68 65 | 61 64 65 72 2e 0d 09 09 |le to he|ader....|
|00004a30| 09 09 0d 09 54 68 65 20 | 63 6f 6e 73 74 72 75 63 |....The |construc|
|00004a40| 74 65 64 20 68 65 61 64 | 65 72 20 69 6e 63 6c 75 |ted head|er inclu|
|00004a50| 64 65 73 20 61 20 62 6c | 61 6e 6b 20 6c 69 6e 65 |des a bl|ank line|
|00004a60| 20 61 74 20 74 68 65 20 | 65 6e 64 20 28 43 52 43 | at the |end (CRC|
|00004a70| 52 29 2e 0d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |R)..----|--------|
|00004a80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004a90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004aa0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004ab0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004ac0| 2a 2f 0d 0d 4f 53 45 72 | 72 20 4d 61 6b 65 4d 61 |*/..OSEr|r MakeMa|
|00004ad0| 69 6c 48 65 61 64 65 72 | 20 28 48 61 6e 64 6c 65 |ilHeader| (Handle|
|00004ae0| 20 73 75 62 6a 65 63 74 | 2c 20 48 61 6e 64 6c 65 | subject|, Handle|
|00004af0| 20 74 6f 2c 20 48 61 6e | 64 6c 65 20 63 63 2c 20 | to, Han|dle cc, |
|00004b00| 48 61 6e 64 6c 65 20 62 | 63 63 2c 20 48 61 6e 64 |Handle b|cc, Hand|
|00004b10| 6c 65 20 66 72 6f 6d 2c | 0d 09 42 6f 6f 6c 65 61 |le from,|..Boolea|
|00004b20| 6e 20 63 6f 70 79 53 65 | 6c 66 2c 20 48 61 6e 64 |n copySe|lf, Hand|
|00004b30| 6c 65 20 72 65 70 6c 79 | 74 6f 2c 20 48 61 6e 64 |le reply|to, Hand|
|00004b40| 6c 65 20 6b 65 79 77 6f | 72 64 73 2c 20 48 61 6e |le keywo|rds, Han|
|00004b50| 64 6c 65 20 65 78 74 72 | 61 73 2c 0d 09 48 61 6e |dle extr|as,..Han|
|00004b60| 64 6c 65 20 6e 65 77 73 | 67 72 6f 75 70 73 2c 20 |dle news|groups, |
|00004b70| 48 61 6e 64 6c 65 20 66 | 6f 6c 6c 6f 77 75 70 74 |Handle f|ollowupt|
|00004b80| 6f 2c 20 48 61 6e 64 6c | 65 20 64 69 73 74 72 69 |o, Handl|e distri|
|00004b90| 62 75 74 69 6f 6e 2c 20 | 0d 09 48 61 6e 64 6c 65 |bution, |..Handle|
|00004ba0| 20 72 65 66 65 72 65 6e | 63 65 73 2c 20 48 61 6e | referen|ces, Han|
|00004bb0| 64 6c 65 20 2a 68 65 61 | 64 65 72 29 0d 7b 0d 09 |dle *hea|der).{..|
|00004bc0| 48 61 6e 64 6c 65 20 68 | 64 72 20 3d 20 6e 69 6c |Handle h|dr = nil|
|00004bd0| 3b 0d 09 48 61 6e 64 6c | 65 20 78 62 63 63 20 3d |;..Handl|e xbcc =|
|00004be0| 20 6e 69 6c 3b 0d 09 48 | 61 6e 64 6c 65 20 78 74 | nil;..H|andle xt|
|00004bf0| 6f 20 3d 20 6e 69 6c 3b | 0d 09 42 6f 6f 6c 65 61 |o = nil;|..Boolea|
|00004c00| 6e 20 64 69 73 70 6f 73 | 65 58 62 63 63 20 3d 20 |n dispos|eXbcc = |
|00004c10| 66 61 6c 73 65 3b 0d 09 | 42 6f 6f 6c 65 61 6e 20 |false;..|Boolean |
|00004c20| 64 69 73 70 6f 73 65 58 | 74 6f 20 3d 20 66 61 6c |disposeX|to = fal|
|00004c30| 73 65 3b 0d 09 4f 53 45 | 72 72 20 65 72 72 20 3d |se;..OSE|rr err =|
|00004c40| 20 6e 6f 45 72 72 3b 0d | 09 6c 6f 6e 67 20 68 64 | noErr;.|.long hd|
|00004c50| 72 4e 65 78 74 3b 0d 09 | 43 53 74 72 32 35 35 20 |rNext;..|CStr255 |
|00004c60| 64 61 74 65 3b 0d 09 63 | 68 61 72 20 66 72 6f 6d |date;..c|har from|
|00004c70| 48 64 72 5b 35 31 34 5d | 3b 0d 09 6c 6f 6e 67 20 |Hdr[514]|;..long |
|00004c80| 62 63 63 4c 65 6e 2c 20 | 73 65 6c 66 4c 65 6e 2c |bccLen, |selfLen,|
|00004c90| 20 78 62 63 63 4c 65 6e | 3b 0d 09 63 68 61 72 20 | xbccLen|;..char |
|00004ca0| 2a 71 3b 0d 09 0d 09 4d | 79 49 43 52 65 61 64 53 |*q;....M|yICReadS|
|00004cb0| 68 61 72 65 64 50 72 65 | 66 73 28 6b 49 43 4f 72 |haredPre|fs(kICOr|
|00004cc0| 67 61 6e 69 7a 61 74 69 | 6f 6e 29 3b 0d 09 4d 79 |ganizati|on);..My|
|00004cd0| 49 43 52 65 61 64 53 68 | 61 72 65 64 50 72 65 66 |ICReadSh|aredPref|
|00004ce0| 73 28 6b 49 43 45 6d 61 | 69 6c 29 3b 0d 09 0d 09 |s(kICEma|il);....|
|00004cf0| 65 72 72 20 3d 20 4d 79 | 4e 65 77 48 61 6e 64 6c |err = My|NewHandl|
|00004d00| 65 28 31 30 30 30 2c 20 | 26 68 64 72 29 3b 0d 09 |e(1000, |&hdr);..|
|00004d10| 69 66 20 28 65 72 72 20 | 21 3d 20 6e 6f 45 72 72 |if (err |!= noErr|
|00004d20| 29 20 72 65 74 75 72 6e | 20 65 72 72 3b 0d 09 68 |) return| err;..h|
|00004d30| 64 72 4e 65 78 74 20 3d | 20 30 3b 0d 09 0d 09 4d |drNext =| 0;....M|
|00004d40| 61 6b 65 44 61 74 65 48 | 65 61 64 65 72 28 64 61 |akeDateH|eader(da|
|00004d50| 74 65 29 3b 0d 09 0d 09 | 78 74 6f 20 3d 20 74 6f |te);....|xto = to|
|00004d60| 3b 0d 09 78 62 63 63 20 | 3d 20 62 63 63 3b 0d 09 |;..xbcc |= bcc;..|
|00004d70| 69 66 20 28 63 6f 70 79 | 53 65 6c 66 29 20 7b 0d |if (copy|Self) {.|
|00004d80| 09 09 73 65 6c 66 4c 65 | 6e 20 3d 20 73 74 72 6c |..selfLe|n = strl|
|00004d90| 65 6e 28 67 50 72 65 66 | 73 2e 65 6d 61 69 6c 41 |en(gPref|s.emailA|
|00004da0| 64 64 72 65 73 73 29 3b | 0d 09 09 69 66 20 28 48 |ddress);|...if (H|
|00004db0| 65 61 64 65 72 4c 69 6e | 65 49 73 45 6d 70 74 79 |eaderLin|eIsEmpty|
|00004dc0| 28 74 6f 29 20 26 26 20 | 48 65 61 64 65 72 4c 69 |(to) && |HeaderLi|
|00004dd0| 6e 65 49 73 45 6d 70 74 | 79 28 63 63 29 29 20 7b |neIsEmpt|y(cc)) {|
|00004de0| 0d 09 09 09 65 72 72 20 | 3d 20 4d 79 4e 65 77 48 |....err |= MyNewH|
|00004df0| 61 6e 64 6c 65 28 73 65 | 6c 66 4c 65 6e 2c 20 26 |andle(se|lfLen, &|
|00004e00| 78 74 6f 29 3b 0d 09 09 | 09 69 66 20 28 65 72 72 |xto);...|.if (err|
|00004e10| 20 21 3d 20 6e 6f 45 72 | 72 29 20 67 6f 74 6f 20 | != noEr|r) goto |
|00004e20| 65 78 69 74 3b 0d 09 09 | 09 64 69 73 70 6f 73 65 |exit;...|.dispose|
|00004e30| 58 74 6f 20 3d 20 74 72 | 75 65 3b 0d 09 09 09 42 |Xto = tr|ue;....B|
|00004e40| 6c 6f 63 6b 4d 6f 76 65 | 44 61 74 61 28 67 50 72 |lockMove|Data(gPr|
|00004e50| 65 66 73 2e 65 6d 61 69 | 6c 41 64 64 72 65 73 73 |efs.emai|lAddress|
|00004e60| 2c 20 2a 78 74 6f 2c 20 | 73 65 6c 66 4c 65 6e 29 |, *xto, |selfLen)|
|00004e70| 3b 0d 09 09 7d 20 65 6c | 73 65 20 7b 0d 09 09 09 |;...} el|se {....|
|00004e80| 62 63 63 4c 65 6e 20 3d | 20 62 63 63 20 3d 3d 20 |bccLen =| bcc == |
|00004e90| 6e 69 6c 20 3f 20 30 20 | 3a 20 4d 79 47 65 74 48 |nil ? 0 |: MyGetH|
|00004ea0| 61 6e 64 6c 65 53 69 7a | 65 28 62 63 63 29 3b 0d |andleSiz|e(bcc);.|
|00004eb0| 09 09 09 78 62 63 63 4c | 65 6e 20 3d 20 62 63 63 |...xbccL|en = bcc|
|00004ec0| 4c 65 6e 20 2b 20 73 65 | 6c 66 4c 65 6e 3b 0d 09 |Len + se|lfLen;..|
|00004ed0| 09 09 69 66 20 28 62 63 | 63 20 21 3d 20 6e 69 6c |..if (bc|c != nil|
|00004ee0| 29 20 78 62 63 63 4c 65 | 6e 2b 2b 3b 0d 09 09 09 |) xbccLe|n++;....|
|00004ef0| 65 72 72 20 3d 20 4d 79 | 4e 65 77 48 61 6e 64 6c |err = My|NewHandl|
|00004f00| 65 28 78 62 63 63 4c 65 | 6e 2c 20 26 78 62 63 63 |e(xbccLe|n, &xbcc|
|00004f10| 29 3b 0d 09 09 09 69 66 | 20 28 65 72 72 20 21 3d |);....if| (err !=|
|00004f20| 20 6e 6f 45 72 72 29 20 | 67 6f 74 6f 20 65 78 69 | noErr) |goto exi|
|00004f30| 74 3b 0d 09 09 09 64 69 | 73 70 6f 73 65 58 62 63 |t;....di|sposeXbc|
|00004f40| 63 20 3d 20 74 72 75 65 | 3b 0d 09 09 09 71 20 3d |c = true|;....q =|
|00004f50| 20 2a 78 62 63 63 3b 0d | 09 09 09 69 66 20 28 62 | *xbcc;.|...if (b|
|00004f60| 63 63 20 21 3d 20 6e 69 | 6c 29 20 7b 0d 09 09 09 |cc != ni|l) {....|
|00004f70| 09 42 6c 6f 63 6b 4d 6f | 76 65 44 61 74 61 28 2a |.BlockMo|veData(*|
|00004f80| 62 63 63 2c 20 2a 78 62 | 63 63 2c 20 62 63 63 4c |bcc, *xb|cc, bccL|
|00004f90| 65 6e 29 3b 0d 09 09 09 | 09 71 20 2b 3d 20 62 63 |en);....|.q += bc|
|00004fa0| 63 4c 65 6e 3b 0d 09 09 | 09 09 2a 71 2b 2b 20 3d |cLen;...|..*q++ =|
|00004fb0| 20 27 2c 27 3b 0d 09 09 | 09 7d 0d 09 09 09 42 6c | ',';...|.}....Bl|
|00004fc0| 6f 63 6b 4d 6f 76 65 44 | 61 74 61 28 67 50 72 65 |ockMoveD|ata(gPre|
|00004fd0| 66 73 2e 65 6d 61 69 6c | 41 64 64 72 65 73 73 2c |fs.email|Address,|
|00004fe0| 20 71 2c 20 73 65 6c 66 | 4c 65 6e 29 3b 0d 09 09 | q, self|Len);...|
|00004ff0| 7d 0d 09 7d 0d 09 0d 09 | 65 72 72 20 3d 20 41 64 |}..}....|err = Ad|
|00005000| 64 48 65 61 64 65 72 43 | 53 74 72 69 6e 67 28 22 |dHeaderC|String("|
|00005010| 44 61 74 65 22 2c 20 64 | 61 74 65 2c 20 68 64 72 |Date", d|ate, hdr|
|00005020| 2c 20 26 68 64 72 4e 65 | 78 74 2c 20 66 61 6c 73 |, &hdrNe|xt, fals|
|00005030| 65 2c 20 6b 4d 61 70 54 | 6f 53 70 61 63 65 29 3b |e, kMapT|oSpace);|
|00005040| 0d 09 69 66 20 28 65 72 | 72 20 21 3d 20 6e 6f 45 |..if (er|r != noE|
|00005050| 72 72 29 20 67 6f 74 6f | 20 65 78 69 74 3b 0d 09 |rr) goto| exit;..|
|00005060| 69 66 20 28 48 65 61 64 | 65 72 4c 69 6e 65 49 73 |if (Head|erLineIs|
|00005070| 45 6d 70 74 79 28 66 72 | 6f 6d 29 29 20 7b 0d 09 |Empty(fr|om)) {..|
|00005080| 09 4d 61 6b 65 46 72 6f | 6d 48 65 61 64 65 72 28 |.MakeFro|mHeader(|
|00005090| 66 72 6f 6d 48 64 72 29 | 3b 0d 09 09 65 72 72 20 |fromHdr)|;...err |
|000050a0| 3d 20 41 64 64 48 65 61 | 64 65 72 43 53 74 72 69 |= AddHea|derCStri|
|000050b0| 6e 67 28 22 46 72 6f 6d | 22 2c 20 66 72 6f 6d 48 |ng("From|", fromH|
|000050c0| 64 72 2c 20 68 64 72 2c | 20 26 68 64 72 4e 65 78 |dr, hdr,| &hdrNex|
|000050d0| 74 2c 20 66 61 6c 73 65 | 2c 20 6b 4d 61 70 54 6f |t, false|, kMapTo|
|000050e0| 53 70 61 63 65 29 3b 0d | 09 7d 20 65 6c 73 65 20 |Space);.|.} else |
|000050f0| 7b 0d 09 09 65 72 72 20 | 3d 20 41 64 64 48 65 61 |{...err |= AddHea|
|00005100| 64 65 72 48 61 6e 64 6c | 65 28 22 46 72 6f 6d 22 |derHandl|e("From"|
|00005110| 2c 20 66 72 6f 6d 2c 20 | 68 64 72 2c 20 26 68 64 |, from, |hdr, &hd|
|00005120| 72 4e 65 78 74 2c 20 66 | 61 6c 73 65 2c 20 6b 4d |rNext, f|alse, kM|
|00005130| 61 70 54 6f 53 70 61 63 | 65 29 3b 0d 09 7d 0d 09 |apToSpac|e);..}..|
|00005140| 69 66 20 28 65 72 72 20 | 21 3d 20 6e 6f 45 72 72 |if (err |!= noErr|
|00005150| 29 20 67 6f 74 6f 20 65 | 78 69 74 3b 0d 09 65 72 |) goto e|xit;..er|
|00005160| 72 20 3d 20 41 64 64 48 | 65 61 64 65 72 48 61 6e |r = AddH|eaderHan|
|00005170| 64 6c 65 28 22 54 6f 22 | 2c 20 78 74 6f 2c 20 68 |dle("To"|, xto, h|
|00005180| 64 72 2c 20 26 68 64 72 | 4e 65 78 74 2c 20 66 61 |dr, &hdr|Next, fa|
|00005190| 6c 73 65 2c 20 6b 4d 61 | 70 54 6f 43 6f 6d 6d 61 |lse, kMa|pToComma|
|000051a0| 29 3b 0d 09 69 66 20 28 | 65 72 72 20 21 3d 20 6e |);..if (|err != n|
|000051b0| 6f 45 72 72 29 20 67 6f | 74 6f 20 65 78 69 74 3b |oErr) go|to exit;|
|000051c0| 0d 09 65 72 72 20 3d 20 | 41 64 64 48 65 61 64 65 |..err = |AddHeade|
|000051d0| 72 48 61 6e 64 6c 65 28 | 22 43 63 22 2c 20 63 63 |rHandle(|"Cc", cc|
|000051e0| 2c 20 68 64 72 2c 20 26 | 68 64 72 4e 65 78 74 2c |, hdr, &|hdrNext,|
|000051f0| 20 66 61 6c 73 65 2c 20 | 6b 4d 61 70 54 6f 43 6f | false, |kMapToCo|
|00005200| 6d 6d 61 29 3b 0d 09 69 | 66 20 28 65 72 72 20 21 |mma);..i|f (err !|
|00005210| 3d 20 6e 6f 45 72 72 29 | 20 67 6f 74 6f 20 65 78 |= noErr)| goto ex|
|00005220| 69 74 3b 0d 09 65 72 72 | 20 3d 20 41 64 64 48 65 |it;..err| = AddHe|
|00005230| 61 64 65 72 48 61 6e 64 | 6c 65 28 22 42 63 63 22 |aderHand|le("Bcc"|
|00005240| 2c 20 78 62 63 63 2c 20 | 68 64 72 2c 20 26 68 64 |, xbcc, |hdr, &hd|
|00005250| 72 4e 65 78 74 2c 20 66 | 61 6c 73 65 2c 20 6b 4d |rNext, f|alse, kM|
|00005260| 61 70 54 6f 43 6f 6d 6d | 61 29 3b 0d 09 69 66 20 |apToComm|a);..if |
|00005270| 28 65 72 72 20 21 3d 20 | 6e 6f 45 72 72 29 20 67 |(err != |noErr) g|
|00005280| 6f 74 6f 20 65 78 69 74 | 3b 0d 09 65 72 72 20 3d |oto exit|;..err =|
|00005290| 20 41 64 64 48 65 61 64 | 65 72 48 61 6e 64 6c 65 | AddHead|erHandle|
|000052a0| 28 22 52 65 70 6c 79 2d | 54 6f 22 2c 20 72 65 70 |("Reply-|To", rep|
|000052b0| 6c 79 74 6f 2c 20 68 64 | 72 2c 20 26 68 64 72 4e |lyto, hd|r, &hdrN|
|000052c0| 65 78 74 2c 20 66 61 6c | 73 65 2c 20 6b 4d 61 70 |ext, fal|se, kMap|
|000052d0| 54 6f 43 6f 6d 6d 61 29 | 3b 0d 09 69 66 20 28 65 |ToComma)|;..if (e|
|000052e0| 72 72 20 21 3d 20 6e 6f | 45 72 72 29 20 67 6f 74 |rr != no|Err) got|
|000052f0| 6f 20 65 78 69 74 3b 0d | 09 65 72 72 20 3d 20 41 |o exit;.|.err = A|
|00005300| 64 64 48 65 61 64 65 72 | 48 61 6e 64 6c 65 28 22 |ddHeader|Handle("|
|00005310| 53 75 62 6a 65 63 74 22 | 2c 20 73 75 62 6a 65 63 |Subject"|, subjec|
|00005320| 74 2c 20 68 64 72 2c 20 | 26 68 64 72 4e 65 78 74 |t, hdr, |&hdrNext|
|00005330| 2c 20 66 61 6c 73 65 2c | 20 6b 4d 61 70 54 6f 53 |, false,| kMapToS|
|00005340| 70 61 63 65 29 3b 0d 09 | 69 66 20 28 65 72 72 20 |pace);..|if (err |
|00005350| 21 3d 20 6e 6f 45 72 72 | 29 20 67 6f 74 6f 20 65 |!= noErr|) goto e|
|00005360| 78 69 74 3b 0d 09 65 72 | 72 20 3d 20 41 64 64 48 |xit;..er|r = AddH|
|00005370| 65 61 64 65 72 48 61 6e | 64 6c 65 28 22 4b 65 79 |eaderHan|dle("Key|
|00005380| 77 6f 72 64 73 22 2c 20 | 6b 65 79 77 6f 72 64 73 |words", |keywords|
|00005390| 2c 20 68 64 72 2c 20 26 | 68 64 72 4e 65 78 74 2c |, hdr, &|hdrNext,|
|000053a0| 20 66 61 6c 73 65 2c 20 | 6b 4d 61 70 54 6f 53 70 | false, |kMapToSp|
|000053b0| 61 63 65 29 3b 0d 09 69 | 66 20 28 65 72 72 20 21 |ace);..i|f (err !|
|000053c0| 3d 20 6e 6f 45 72 72 29 | 20 67 6f 74 6f 20 65 78 |= noErr)| goto ex|
|000053d0| 69 74 3b 0d 09 65 72 72 | 20 3d 20 41 64 64 48 65 |it;..err| = AddHe|
|000053e0| 61 64 65 72 48 61 6e 64 | 6c 65 28 22 4e 65 77 73 |aderHand|le("News|
|000053f0| 67 72 6f 75 70 73 22 2c | 20 6e 65 77 73 67 72 6f |groups",| newsgro|
|00005400| 75 70 73 2c 20 68 64 72 | 2c 20 26 68 64 72 4e 65 |ups, hdr|, &hdrNe|
|00005410| 78 74 2c 20 74 72 75 65 | 2c 20 6b 4d 61 70 54 6f |xt, true|, kMapTo|
|00005420| 43 6f 6d 6d 61 29 3b 0d | 09 69 66 20 28 65 72 72 |Comma);.|.if (err|
|00005430| 20 21 3d 20 6e 6f 45 72 | 72 29 20 67 6f 74 6f 20 | != noEr|r) goto |
|00005440| 65 78 69 74 3b 0d 09 65 | 72 72 20 3d 20 41 64 64 |exit;..e|rr = Add|
|00005450| 48 65 61 64 65 72 48 61 | 6e 64 6c 65 28 22 46 6f |HeaderHa|ndle("Fo|
|00005460| 6c 6c 6f 77 75 70 2d 54 | 6f 22 2c 20 66 6f 6c 6c |llowup-T|o", foll|
|00005470| 6f 77 75 70 74 6f 2c 20 | 68 64 72 2c 20 26 68 64 |owupto, |hdr, &hd|
|00005480| 72 4e 65 78 74 2c 20 66 | 61 6c 73 65 2c 20 6b 4d |rNext, f|alse, kM|
|00005490| 61 70 54 6f 43 6f 6d 6d | 61 29 3b 0d 09 69 66 20 |apToComm|a);..if |
|000054a0| 28 65 72 72 20 21 3d 20 | 6e 6f 45 72 72 29 20 67 |(err != |noErr) g|
|000054b0| 6f 74 6f 20 65 78 69 74 | 3b 0d 09 65 72 72 20 3d |oto exit|;..err =|
|000054c0| 20 41 64 64 48 65 61 64 | 65 72 48 61 6e 64 6c 65 | AddHead|erHandle|
|000054d0| 28 22 44 69 73 74 72 69 | 62 75 74 69 6f 6e 22 2c |("Distri|bution",|
|000054e0| 20 64 69 73 74 72 69 62 | 75 74 69 6f 6e 2c 20 68 | distrib|ution, h|
|000054f0| 64 72 2c 20 26 68 64 72 | 4e 65 78 74 2c 20 66 61 |dr, &hdr|Next, fa|
|00005500| 6c 73 65 2c 20 6b 4d 61 | 70 54 6f 53 70 61 63 65 |lse, kMa|pToSpace|
|00005510| 29 3b 0d 09 69 66 20 28 | 65 72 72 20 21 3d 20 6e |);..if (|err != n|
|00005520| 6f 45 72 72 29 20 67 6f | 74 6f 20 65 78 69 74 3b |oErr) go|to exit;|
|00005530| 0d 09 65 72 72 20 3d 20 | 41 64 64 48 65 61 64 65 |..err = |AddHeade|
|00005540| 72 48 61 6e 64 6c 65 28 | 22 52 65 66 65 72 65 6e |rHandle(|"Referen|
|00005550| 63 65 73 22 2c 20 72 65 | 66 65 72 65 6e 63 65 73 |ces", re|ferences|
|00005560| 2c 20 68 64 72 2c 20 26 | 68 64 72 4e 65 78 74 2c |, hdr, &|hdrNext,|
|00005570| 20 66 61 6c 73 65 2c 20 | 6b 4e 6f 4d 61 70 43 52 | false, |kNoMapCR|
|00005580| 29 3b 0d 09 69 66 20 28 | 65 72 72 20 21 3d 20 6e |);..if (|err != n|
|00005590| 6f 45 72 72 29 20 67 6f | 74 6f 20 65 78 69 74 3b |oErr) go|to exit;|
|000055a0| 0d 09 65 72 72 20 3d 20 | 41 64 64 48 65 61 64 65 |..err = |AddHeade|
|000055b0| 72 43 53 74 72 69 6e 67 | 28 22 4f 72 67 61 6e 69 |rCString|("Organi|
|000055c0| 7a 61 74 69 6f 6e 22 2c | 20 67 50 72 65 66 73 2e |zation",| gPrefs.|
|000055d0| 6f 72 67 61 6e 69 7a 61 | 74 69 6f 6e 2c 20 68 64 |organiza|tion, hd|
|000055e0| 72 2c 20 26 68 64 72 4e | 65 78 74 2c 20 66 61 6c |r, &hdrN|ext, fal|
|000055f0| 73 65 2c 20 6b 4d 61 70 | 54 6f 53 70 61 63 65 29 |se, kMap|ToSpace)|
|00005600| 3b 0d 09 69 66 20 28 65 | 72 72 20 21 3d 20 6e 6f |;..if (e|rr != no|
|00005610| 45 72 72 29 20 67 6f 74 | 6f 20 65 78 69 74 3b 0d |Err) got|o exit;.|
|00005620| 09 65 72 72 20 3d 20 41 | 64 64 45 78 74 72 61 48 |.err = A|ddExtraH|
|00005630| 65 61 64 65 72 4c 69 6e | 65 73 28 65 78 74 72 61 |eaderLin|es(extra|
|00005640| 73 2c 20 68 64 72 2c 20 | 26 68 64 72 4e 65 78 74 |s, hdr, |&hdrNext|
|00005650| 29 3b 0d 09 69 66 20 28 | 65 72 72 20 21 3d 20 6e |);..if (|err != n|
|00005660| 6f 45 72 72 29 20 67 6f | 74 6f 20 65 78 69 74 3b |oErr) go|to exit;|
|00005670| 0d 09 0d 09 65 72 72 20 | 3d 20 4d 79 53 65 74 48 |....err |= MySetH|
|00005680| 61 6e 64 6c 65 53 69 7a | 65 28 68 64 72 2c 20 68 |andleSiz|e(hdr, h|
|00005690| 64 72 4e 65 78 74 2b 31 | 29 3b 0d 09 69 66 20 28 |drNext+1|);..if (|
|000056a0| 65 72 72 20 21 3d 20 6e | 6f 45 72 72 29 20 67 6f |err != n|oErr) go|
|000056b0| 74 6f 20 65 78 69 74 3b | 0d 09 2a 28 2a 68 64 72 |to exit;|..*(*hdr|
|000056c0| 20 2b 20 68 64 72 4e 65 | 78 74 29 20 3d 20 43 52 | + hdrNe|xt) = CR|
|000056d0| 3b 0d 09 0d 09 69 66 20 | 28 64 69 73 70 6f 73 65 |;....if |(dispose|
|000056e0| 58 74 6f 29 20 4d 79 44 | 69 73 70 6f 73 65 48 61 |Xto) MyD|isposeHa|
|000056f0| 6e 64 6c 65 28 78 74 6f | 29 3b 0d 09 69 66 20 28 |ndle(xto|);..if (|
|00005700| 64 69 73 70 6f 73 65 58 | 62 63 63 29 20 4d 79 44 |disposeX|bcc) MyD|
|00005710| 69 73 70 6f 73 65 48 61 | 6e 64 6c 65 28 78 62 63 |isposeHa|ndle(xbc|
|00005720| 63 29 3b 0d 0d 09 2a 68 | 65 61 64 65 72 20 3d 20 |c);...*h|eader = |
|00005730| 68 64 72 3b 0d 09 72 65 | 74 75 72 6e 20 6e 6f 45 |hdr;..re|turn noE|
|00005740| 72 72 3b 0d 09 0d 65 78 | 69 74 3a 0d 0d 09 4d 79 |rr;...ex|it:...My|
|00005750| 44 69 73 70 6f 73 65 48 | 61 6e 64 6c 65 28 68 64 |DisposeH|andle(hd|
|00005760| 72 29 3b 0d 09 69 66 20 | 28 64 69 73 70 6f 73 65 |r);..if |(dispose|
|00005770| 58 74 6f 29 20 4d 79 44 | 69 73 70 6f 73 65 48 61 |Xto) MyD|isposeHa|
|00005780| 6e 64 6c 65 28 78 74 6f | 29 3b 0d 09 69 66 20 28 |ndle(xto|);..if (|
|00005790| 64 69 73 70 6f 73 65 58 | 62 63 63 29 20 4d 79 44 |disposeX|bcc) MyD|
|000057a0| 69 73 70 6f 73 65 48 61 | 6e 64 6c 65 28 78 62 63 |isposeHa|ndle(xbc|
|000057b0| 63 29 3b 0d 09 72 65 74 | 75 72 6e 20 65 72 72 3b |c);..ret|urn err;|
|000057c0| 0d 7d 0d 0d 0d 0d 2f 2a | 2d 2d 2d 2d 2d 2d 2d 2d |.}..../*|--------|
|000057d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000057e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000057f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005800| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005810| 2d 2d 2d 2d 0d 09 46 69 | 6e 64 48 65 61 64 65 72 |----..Fi|ndHeader|
|00005820| 43 53 74 72 69 6e 67 0d | 09 0d 09 46 69 6e 64 20 |CString.|...Find |
|00005830| 61 6e 64 20 65 78 74 72 | 61 63 74 20 61 20 6d 65 |and extr|act a me|
|00005840| 73 73 61 67 65 20 68 65 | 61 64 65 72 20 66 72 6f |ssage he|ader fro|
|00005850| 6d 20 61 6e 20 61 72 74 | 69 63 6c 65 20 61 6e 64 |m an art|icle and|
|00005860| 20 72 65 74 75 72 6e 20 | 69 74 20 61 73 20 61 20 | return |it as a |
|00005870| 0d 09 43 2d 66 6f 72 6d | 61 74 20 73 74 72 69 6e |..C-form|at strin|
|00005880| 67 2e 0d 09 0d 09 45 6e | 74 72 79 3a 09 74 65 78 |g.....En|try:.tex|
|00005890| 74 20 3d 20 68 61 6e 64 | 6c 65 20 74 6f 20 61 72 |t = hand|le to ar|
|000058a0| 74 69 63 6c 65 20 74 65 | 78 74 2e 0d 09 09 09 6b |ticle te|xt.....k|
|000058b0| 65 79 20 3d 20 43 2d 66 | 6f 72 6d 61 74 20 68 65 |ey = C-f|ormat he|
|000058c0| 61 64 65 72 20 74 6f 20 | 6c 6f 63 61 74 65 2c 20 |ader to |locate, |
|000058d0| 6e 6f 74 20 69 6e 63 6c | 75 64 69 6e 67 20 0d 09 |not incl|uding ..|
|000058e0| 09 09 09 74 68 65 20 74 | 65 72 6d 69 6e 61 74 69 |...the t|erminati|
|000058f0| 6e 67 20 22 3a 22 2e 0d | 09 09 09 6d 61 78 4c 65 |ng ":"..|...maxLe|
|00005900| 6e 20 3d 20 6d 61 78 69 | 6d 75 6d 20 6c 65 6e 67 |n = maxi|mum leng|
|00005910| 74 68 20 6f 66 20 72 65 | 74 75 72 6e 65 64 20 68 |th of re|turned h|
|00005920| 65 61 64 65 72 20 63 6f | 6e 74 65 6e 74 73 2c 20 |eader co|ntents, |
|00005930| 69 6e 63 6c 75 64 69 6e | 67 0d 09 09 09 09 43 2d |includin|g.....C-|
|00005940| 66 6f 72 6d 61 74 20 74 | 65 72 6d 69 6e 61 74 69 |format t|erminati|
|00005950| 6e 67 20 30 20 62 79 74 | 65 2e 0d 09 09 09 0d 09 |ng 0 byt|e.......|
|00005960| 45 78 69 74 3a 09 66 75 | 6e 63 74 69 6f 6e 20 72 |Exit:.fu|nction r|
|00005970| 65 73 75 6c 74 20 3d 20 | 74 72 75 65 20 69 66 20 |esult = |true if |
|00005980| 68 65 61 64 65 72 20 66 | 6f 75 6e 64 2c 20 65 6c |header f|ound, el|
|00005990| 73 65 20 66 61 6c 73 65 | 2e 0d 09 09 09 63 6f 6e |se false|.....con|
|000059a0| 74 65 6e 74 73 20 3d 20 | 65 78 74 72 61 63 74 65 |tents = |extracte|
|000059b0| 64 20 43 2d 66 6f 72 6d | 61 74 20 68 65 61 64 65 |d C-form|at heade|
|000059c0| 72 20 63 6f 6e 74 65 6e | 74 73 2c 20 77 69 74 68 |r conten|ts, with|
|000059d0| 20 6c 65 61 64 69 6e 67 | 20 61 6e 64 0d 09 09 09 | leading| and....|
|000059e0| 09 74 72 61 69 6c 69 6e | 67 20 77 68 69 74 65 20 |.trailin|g white |
|000059f0| 73 70 61 63 65 20 64 65 | 6c 65 74 65 64 2e 0d 09 |space de|leted...|
|00005a00| 09 09 09 0d 09 49 66 20 | 74 68 65 20 68 65 61 64 |.....If |the head|
|00005a10| 65 72 20 63 6f 6e 74 65 | 6e 74 20 73 74 72 69 6e |er conte|nt strin|
|00005a20| 67 20 69 73 20 6c 6f 6e | 67 65 72 20 74 68 61 6e |g is lon|ger than|
|00005a30| 20 74 68 65 20 6d 61 78 | 69 6d 75 6d 20 6c 65 6e | the max|imum len|
|00005a40| 67 74 68 2c 20 69 74 20 | 69 73 0d 09 74 72 75 6e |gth, it |is..trun|
|00005a50| 63 61 74 65 64 20 74 6f | 20 74 68 65 20 6d 61 78 |cated to| the max|
|00005a60| 69 6d 75 6d 20 6c 65 6e | 67 74 68 2e 0d 2d 2d 2d |imum len|gth..---|
|00005a70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005a80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005a90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005aa0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005ab0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2a 2f 0d 0d 42 6f 6f |--------|-*/..Boo|
|00005ac0| 6c 65 61 6e 20 46 69 6e | 64 48 65 61 64 65 72 43 |lean Fin|dHeaderC|
|00005ad0| 53 74 72 69 6e 67 20 28 | 48 61 6e 64 6c 65 20 74 |String (|Handle t|
|00005ae0| 65 78 74 2c 20 63 68 61 | 72 20 2a 6b 65 79 2c 20 |ext, cha|r *key, |
|00005af0| 63 68 61 72 20 2a 63 6f | 6e 74 65 6e 74 73 2c 20 |char *co|ntents, |
|00005b00| 0d 09 6c 6f 6e 67 20 6d | 61 78 4c 65 6e 67 74 68 |..long m|axLength|
|00005b10| 29 0d 7b 0d 09 6c 6f 6e | 67 20 73 74 61 72 74 2c |).{..lon|g start,|
|00005b20| 20 6c 65 6e 3b 0d 09 63 | 68 61 72 20 2a 71 3b 0d | len;..c|har *q;.|
|00005b30| 0d 09 2a 63 6f 6e 74 65 | 6e 74 73 20 3d 20 30 3b |..*conte|nts = 0;|
|00005b40| 0d 09 71 20 3d 20 63 6f | 6e 74 65 6e 74 73 3b 0d |..q = co|ntents;.|
|00005b50| 09 69 66 20 28 21 4c 6f | 63 61 74 65 41 72 74 69 |.if (!Lo|cateArti|
|00005b60| 63 6c 65 48 65 61 64 65 | 72 4c 69 6e 65 28 74 65 |cleHeade|rLine(te|
|00005b70| 78 74 2c 20 6b 65 79 2c | 20 26 73 74 61 72 74 2c |xt, key,| &start,|
|00005b80| 20 26 6c 65 6e 29 29 20 | 72 65 74 75 72 6e 20 66 | &len)) |return f|
|00005b90| 61 6c 73 65 3b 0d 09 77 | 68 69 6c 65 20 28 74 72 |alse;..w|hile (tr|
|00005ba0| 75 65 29 20 7b 0d 09 09 | 69 66 20 28 6c 65 6e 20 |ue) {...|if (len |
|00005bb0| 3e 3d 20 6d 61 78 4c 65 | 6e 67 74 68 29 20 6c 65 |>= maxLe|ngth) le|
|00005bc0| 6e 20 3d 20 6d 61 78 4c | 65 6e 67 74 68 20 2d 20 |n = maxL|ength - |
|00005bd0| 31 3b 0d 09 09 42 6c 6f | 63 6b 4d 6f 76 65 44 61 |1;...Blo|ckMoveDa|
|00005be0| 74 61 28 2a 74 65 78 74 | 20 2b 20 73 74 61 72 74 |ta(*text| + start|
|00005bf0| 2c 20 71 2c 20 6c 65 6e | 29 3b 0d 09 09 73 74 61 |, q, len|);...sta|
|00005c00| 72 74 20 2b 3d 20 6c 65 | 6e 3b 0d 09 09 71 20 2b |rt += le|n;...q +|
|00005c10| 3d 20 6c 65 6e 3b 0d 09 | 09 6d 61 78 4c 65 6e 67 |= len;..|.maxLeng|
|00005c20| 74 68 20 2d 3d 20 6c 65 | 6e 3b 0d 09 09 69 66 20 |th -= le|n;...if |
|00005c30| 28 6d 61 78 4c 65 6e 67 | 74 68 20 3c 3d 20 31 29 |(maxLeng|th <= 1)|
|00005c40| 20 62 72 65 61 6b 3b 0d | 09 09 69 66 20 28 21 4c | break;.|..if (!L|
|00005c50| 6f 63 61 74 65 43 6f 6e | 74 69 6e 75 61 74 69 6f |ocateCon|tinuatio|
|00005c60| 6e 48 65 61 64 65 72 4c | 69 6e 65 28 74 65 78 74 |nHeaderL|ine(text|
|00005c70| 2c 20 26 73 74 61 72 74 | 2c 20 26 6c 65 6e 29 29 |, &start|, &len))|
|00005c80| 20 62 72 65 61 6b 3b 0d | 09 09 2a 71 2b 2b 20 3d | break;.|..*q++ =|
|00005c90| 20 27 20 27 3b 0d 09 09 | 6d 61 78 4c 65 6e 67 74 | ' ';...|maxLengt|
|00005ca0| 68 2d 2d 3b 0d 09 7d 0d | 09 2a 71 20 3d 20 30 3b |h--;..}.|.*q = 0;|
|00005cb0| 0d 09 72 65 74 75 72 6e | 20 74 72 75 65 3b 0d 7d |..return| true;.}|
|00005cc0| 0d 0d 0d 0d 2f 2a 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |..../*--|--------|
|00005cd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005ce0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005cf0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005d00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005d10| 2d 2d 0d 09 46 69 6e 64 | 48 65 61 64 65 72 48 61 |--..Find|HeaderHa|
|00005d20| 6e 64 6c 65 0d 09 0d 09 | 46 69 6e 64 20 61 6e 64 |ndle....|Find and|
|00005d30| 20 65 78 74 72 61 63 74 | 20 61 20 6d 65 73 73 61 | extract| a messa|
|00005d40| 67 65 20 68 65 61 64 65 | 72 20 66 72 6f 6d 20 61 |ge heade|r from a|
|00005d50| 6e 20 61 72 74 69 63 6c | 65 20 61 6e 64 20 72 65 |n articl|e and re|
|00005d60| 74 75 72 6e 20 69 74 20 | 69 6e 20 61 20 0d 09 72 |turn it |in a ..r|
|00005d70| 65 6c 6f 63 61 74 61 62 | 6c 65 20 62 6c 6f 63 6b |elocatab|le block|
|00005d80| 2e 0d 09 0d 09 45 6e 74 | 72 79 3a 09 74 65 78 74 |.....Ent|ry:.text|
|00005d90| 20 3d 20 68 61 6e 64 6c | 65 20 74 6f 20 61 72 74 | = handl|e to art|
|00005da0| 69 63 6c 65 20 74 65 78 | 74 2e 0d 09 09 09 6b 65 |icle tex|t.....ke|
|00005db0| 79 20 3d 20 43 2d 66 6f | 72 6d 61 74 20 68 65 61 |y = C-fo|rmat hea|
|00005dc0| 64 65 72 20 74 6f 20 6c | 6f 63 61 74 65 2c 20 6e |der to l|ocate, n|
|00005dd0| 6f 74 20 69 6e 63 6c 75 | 64 69 6e 67 20 0d 09 09 |ot inclu|ding ...|
|00005de0| 09 09 74 68 65 20 74 65 | 72 6d 69 6e 61 74 69 6e |..the te|rminatin|
|00005df0| 67 20 22 3a 22 2e 0d 09 | 09 09 0d 09 45 78 69 74 |g ":"...|....Exit|
|00005e00| 3a 09 66 75 6e 63 74 69 | 6f 6e 20 72 65 73 75 6c |:.functi|on resul|
|00005e10| 74 20 3d 20 65 72 72 6f | 72 20 63 6f 64 65 2e 0d |t = erro|r code..|
|00005e20| 09 09 09 63 6f 6e 74 65 | 6e 74 73 20 3d 20 68 61 |...conte|nts = ha|
|00005e30| 6e 64 6c 65 20 74 6f 20 | 65 78 74 72 61 63 74 65 |ndle to |extracte|
|00005e40| 64 20 68 65 61 64 65 72 | 20 63 6f 6e 74 65 6e 74 |d header| content|
|00005e50| 73 2c 20 77 69 74 68 20 | 6c 65 61 64 69 6e 67 20 |s, with |leading |
|00005e60| 61 6e 64 0d 09 09 09 09 | 74 72 61 69 6c 69 6e 67 |and.....|trailing|
|00005e70| 20 77 68 69 74 65 20 73 | 70 61 63 65 20 64 65 6c | white s|pace del|
|00005e80| 65 74 65 64 2c 20 6f 72 | 20 6e 69 6c 20 69 66 20 |eted, or| nil if |
|00005e90| 68 65 61 64 65 72 20 6e | 6f 74 20 66 6f 75 6e 64 |header n|ot found|
|00005ea0| 2e 0d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |..------|--------|
|00005eb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005ec0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005ed0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005ee0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2a 2f |--------|------*/|
|00005ef0| 0d 0d 4f 53 45 72 72 20 | 46 69 6e 64 48 65 61 64 |..OSErr |FindHead|
|00005f00| 65 72 48 61 6e 64 6c 65 | 20 28 48 61 6e 64 6c 65 |erHandle| (Handle|
|00005f10| 20 74 65 78 74 2c 20 63 | 68 61 72 20 2a 6b 65 79 | text, c|har *key|
|00005f20| 2c 20 48 61 6e 64 6c 65 | 20 2a 63 6f 6e 74 65 6e |, Handle| *conten|
|00005f30| 74 73 29 0d 7b 0d 09 6c | 6f 6e 67 20 73 74 61 72 |ts).{..l|ong star|
|00005f40| 74 2c 20 66 69 72 73 74 | 4c 69 6e 65 53 74 61 72 |t, first|LineStar|
|00005f50| 74 2c 20 66 69 72 73 74 | 4c 69 6e 65 4c 65 6e 2c |t, first|LineLen,|
|00005f60| 20 6c 65 6e 2c 20 74 6f | 74 61 6c 4c 65 6e 3b 0d | len, to|talLen;.|
|00005f70| 09 48 61 6e 64 6c 65 20 | 68 3b 0d 09 63 68 61 72 |.Handle |h;..char|
|00005f80| 20 2a 71 3b 0d 09 4f 53 | 45 72 72 20 65 72 72 20 | *q;..OS|Err err |
|00005f90| 3d 20 6e 6f 45 72 72 3b | 0d 0d 09 2a 63 6f 6e 74 |= noErr;|...*cont|
|00005fa0| 65 6e 74 73 20 3d 20 6e | 69 6c 3b 0d 09 69 66 20 |ents = n|il;..if |
|00005fb0| 28 21 4c 6f 63 61 74 65 | 41 72 74 69 63 6c 65 48 |(!Locate|ArticleH|
|00005fc0| 65 61 64 65 72 4c 69 6e | 65 28 74 65 78 74 2c 20 |eaderLin|e(text, |
|00005fd0| 6b 65 79 2c 20 26 73 74 | 61 72 74 2c 20 26 6c 65 |key, &st|art, &le|
|00005fe0| 6e 29 29 20 72 65 74 75 | 72 6e 20 6e 6f 45 72 72 |n)) retu|rn noErr|
|00005ff0| 3b 0d 09 74 6f 74 61 6c | 4c 65 6e 20 3d 20 30 3b |;..total|Len = 0;|
|00006000| 0d 09 66 69 72 73 74 4c | 69 6e 65 53 74 61 72 74 |..firstL|ineStart|
|00006010| 20 3d 20 73 74 61 72 74 | 3b 0d 09 66 69 72 73 74 | = start|;..first|
|00006020| 4c 69 6e 65 4c 65 6e 20 | 3d 20 6c 65 6e 3b 0d 09 |LineLen |= len;..|
|00006030| 77 68 69 6c 65 20 28 74 | 72 75 65 29 20 7b 0d 09 |while (t|rue) {..|
|00006040| 09 74 6f 74 61 6c 4c 65 | 6e 20 2b 3d 20 6c 65 6e |.totalLe|n += len|
|00006050| 3b 0d 09 09 73 74 61 72 | 74 20 2b 3d 20 6c 65 6e |;...star|t += len|
|00006060| 3b 0d 09 09 69 66 20 28 | 21 4c 6f 63 61 74 65 43 |;...if (|!LocateC|
|00006070| 6f 6e 74 69 6e 75 61 74 | 69 6f 6e 48 65 61 64 65 |ontinuat|ionHeade|
|00006080| 72 4c 69 6e 65 28 74 65 | 78 74 2c 20 26 73 74 61 |rLine(te|xt, &sta|
|00006090| 72 74 2c 20 26 6c 65 6e | 29 29 20 62 72 65 61 6b |rt, &len|)) break|
|000060a0| 3b 0d 09 09 74 6f 74 61 | 6c 4c 65 6e 20 2b 3d 20 |;...tota|lLen += |
|000060b0| 31 3b 0d 09 7d 0d 09 65 | 72 72 20 3d 20 4d 79 4e |1;..}..e|rr = MyN|
|000060c0| 65 77 48 61 6e 64 6c 65 | 28 74 6f 74 61 6c 4c 65 |ewHandle|(totalLe|
|000060d0| 6e 2c 20 26 68 29 3b 0d | 09 69 66 20 28 65 72 72 |n, &h);.|.if (err|
|000060e0| 20 21 3d 20 6e 6f 45 72 | 72 29 20 72 65 74 75 72 | != noEr|r) retur|
|000060f0| 6e 20 65 72 72 3b 0d 09 | 4d 79 48 4c 6f 63 6b 28 |n err;..|MyHLock(|
|00006100| 68 29 3b 0d 09 71 20 3d | 20 2a 68 3b 0d 09 73 74 |h);..q =| *h;..st|
|00006110| 61 72 74 20 3d 20 66 69 | 72 73 74 4c 69 6e 65 53 |art = fi|rstLineS|
|00006120| 74 61 72 74 3b 0d 09 6c | 65 6e 20 3d 20 66 69 72 |tart;..l|en = fir|
|00006130| 73 74 4c 69 6e 65 4c 65 | 6e 3b 0d 09 77 68 69 6c |stLineLe|n;..whil|
|00006140| 65 20 28 74 72 75 65 29 | 20 7b 0d 09 09 42 6c 6f |e (true)| {...Blo|
|00006150| 63 6b 4d 6f 76 65 44 61 | 74 61 28 2a 74 65 78 74 |ckMoveDa|ta(*text|
|00006160| 20 2b 20 73 74 61 72 74 | 2c 20 71 2c 20 6c 65 6e | + start|, q, len|
|00006170| 29 3b 0d 09 09 73 74 61 | 72 74 20 2b 3d 20 6c 65 |);...sta|rt += le|
|00006180| 6e 3b 0d 09 09 71 20 2b | 3d 20 6c 65 6e 3b 0d 09 |n;...q +|= len;..|
|00006190| 09 69 66 20 28 21 4c 6f | 63 61 74 65 43 6f 6e 74 |.if (!Lo|cateCont|
|000061a0| 69 6e 75 61 74 69 6f 6e | 48 65 61 64 65 72 4c 69 |inuation|HeaderLi|
|000061b0| 6e 65 28 74 65 78 74 2c | 20 26 73 74 61 72 74 2c |ne(text,| &start,|
|000061c0| 20 26 6c 65 6e 29 29 20 | 62 72 65 61 6b 3b 0d 09 | &len)) |break;..|
|000061d0| 09 2a 71 2b 2b 20 3d 20 | 27 20 27 3b 0d 09 7d 0d |.*q++ = |' ';..}.|
|000061e0| 09 4d 79 48 55 6e 6c 6f | 63 6b 28 68 29 3b 0d 09 |.MyHUnlo|ck(h);..|
|000061f0| 2a 63 6f 6e 74 65 6e 74 | 73 20 3d 20 68 3b 0d 09 |*content|s = h;..|
|00006200| 72 65 74 75 72 6e 20 6e | 6f 45 72 72 3b 0d 7d 0d |return n|oErr;.}.|
|00006210| 0d 0d 0d 2f 2a 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.../*---|--------|
|00006220| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00006230| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00006240| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00006250| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00006260| 2d 0d 09 46 6f 72 6d 61 | 74 41 75 74 68 6f 72 4e |-..Forma|tAuthorN|
|00006270| 61 6d 65 20 0d 09 0d 09 | 46 6f 72 6d 61 74 20 61 |ame ....|Format a|
|00006280| 6e 20 61 75 74 68 6f 72 | 20 6e 61 6d 65 2e 0d 09 |n author| name...|
|00006290| 0d 09 45 6e 74 72 79 3a | 09 6e 61 6d 65 20 3d 20 |..Entry:|.name = |
|000062a0| 43 2d 66 6f 72 6d 61 74 | 20 22 46 72 6f 6d 22 20 |C-format| "From" |
|000062b0| 68 65 61 64 65 72 20 63 | 6f 6e 74 65 6e 74 73 2e |header c|ontents.|
|000062c0| 0d 09 09 09 0d 09 45 78 | 69 74 3a 09 6e 61 6d 65 |......Ex|it:.name|
|000062d0| 20 3d 20 66 6f 72 6d 61 | 74 74 65 64 20 6e 61 6d | = forma|tted nam|
|000062e0| 65 2e 0d 09 0d 09 49 66 | 20 74 68 65 20 22 46 72 |e.....If| the "Fr|
|000062f0| 6f 6d 22 20 6c 69 6e 65 | 20 69 73 20 69 6e 20 74 |om" line| is in t|
|00006300| 68 65 20 66 6f 72 6d 20 | 22 61 64 64 72 65 73 73 |he form |"address|
|00006310| 20 28 6e 61 6d 65 29 22 | 2c 20 22 6e 61 6d 65 22 | (name)"|, "name"|
|00006320| 20 69 73 20 72 65 74 75 | 72 6e 65 64 2e 0d 09 49 | is retu|rned...I|
|00006330| 66 20 74 68 65 20 22 46 | 72 6f 6d 22 20 6c 69 6e |f the "F|rom" lin|
|00006340| 65 20 69 73 20 69 6e 20 | 74 68 65 20 66 6f 72 6d |e is in |the form|
|00006350| 20 22 6e 61 6d 65 20 3c | 61 64 64 72 65 73 73 3e | "name <|address>|
|00006360| 22 2c 20 22 6e 61 6d 65 | 22 20 69 73 20 72 65 74 |", "name|" is ret|
|00006370| 75 72 6e 65 64 2e 0d 09 | 4f 74 68 65 72 77 69 73 |urned...|Otherwis|
|00006380| 65 20 74 68 65 20 22 46 | 72 6f 6d 22 20 6c 69 6e |e the "F|rom" lin|
|00006390| 65 20 69 73 20 75 6e 63 | 68 61 6e 67 65 64 2e 0d |e is unc|hanged..|
|000063a0| 09 0d 09 4e 6f 74 65 20 | 74 68 61 74 20 74 68 65 |...Note |that the|
|000063b0| 20 6e 61 6d 65 20 69 73 | 20 66 6f 72 6d 61 74 74 | name is| formatt|
|000063c0| 65 64 20 69 6e 20 70 6c | 61 63 65 2c 20 64 65 73 |ed in pl|ace, des|
|000063d0| 74 72 6f 79 69 6e 67 20 | 74 68 65 20 6f 72 69 67 |troying |the orig|
|000063e0| 69 6e 61 6c 20 0d 09 73 | 74 72 69 6e 67 2c 20 61 |inal ..s|tring, a|
|000063f0| 6e 64 20 74 68 61 74 20 | 74 68 65 20 66 6f 72 6d |nd that |the form|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.